Allocate enough memory for additional /.

Also remove the extra check for the trailing /. Unix will automatically
apply s#/+#/#

Partly suggested by: drew@elysium.ltd.uk
PR: #3956
This commit is contained in:
Sascha Schumann 2000-03-30 12:55:59 +00:00
parent 0ccbd9d9ec
commit fe92fef608

View file

@ -88,13 +88,9 @@ void php_dl(pval *file,int type,pval *return_value)
&& PG(extension_dir)[0]){ && PG(extension_dir)[0]){
int extension_dir_len = strlen(PG(extension_dir)); int extension_dir_len = strlen(PG(extension_dir));
libpath = emalloc(extension_dir_len+file->value.str.len+1); libpath = emalloc(extension_dir_len+file->value.str.len+2);
if (PG(extension_dir)[extension_dir_len-1]=='/' || PG(extension_dir)[extension_dir_len-1]=='\\') { sprintf(libpath,"%s/%s",PG(extension_dir),file->value.str.val);
sprintf(libpath,"%s%s",PG(extension_dir),file->value.str.val);
} else {
sprintf(libpath,"%s/%s",PG(extension_dir),file->value.str.val);
}
} else { } else {
libpath = estrndup(file->value.str.val, file->value.str.len); libpath = estrndup(file->value.str.val, file->value.str.len);
} }