From: Zeev Suraski Date: Fri, 9 Jun 2000 00:43:43 +0000 (+0000) Subject: Restore the check for the trailing slash. Windows does not apply s#/+#/# (PR 4375) X-Git-Tag: PRE_EIGHT_BYTE_ALLOC_PATCH~27 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2ffa48b447c2f0efd4265a197581e435b81bc3a2;p=php Restore the check for the trailing slash. Windows does not apply s#/+#/# (PR 4375) --- diff --git a/ext/standard/dl.c b/ext/standard/dl.c index 1054bdd2f5..978ae54e90 100644 --- a/ext/standard/dl.c +++ b/ext/standard/dl.c @@ -75,6 +75,9 @@ PHP_FUNCTION(dl) #define USING_ZTS 0 #endif +#define IS_SLASH(c) \ + (((c)=='/') || ((c)=='\\')) + void php_dl(pval *file,int type,pval *return_value) { void *handle; @@ -89,7 +92,11 @@ void php_dl(pval *file,int type,pval *return_value) libpath = emalloc(extension_dir_len+file->value.str.len+2); - sprintf(libpath,"%s/%s",PG(extension_dir),file->value.str.val); + if (IS_SLASH(PG(extension_dir)[extension_dir_len-1])) { + sprintf(libpath,"%s%s", PG(extension_dir), file->value.str.val); /* SAFE */ + } else { + sprintf(libpath,"%s/%s", PG(extension_dir), file->value.str.val); /* SAFE */ + } } else { libpath = estrndup(file->value.str.val, file->value.str.len); }