From: Dmitry Stogov Date: Mon, 25 Jun 2007 08:40:36 +0000 (+0000) Subject: Better fix for bug #41655 X-Git-Tag: BEFORE_IMPORT_OF_MYSQLND~398 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5b29e664b4cbb87132bc5365e5f5313f63d7f423;p=php Better fix for bug #41655 --- diff --git a/ext/standard/dir.c b/ext/standard/dir.c index a26e0c6440..8c0f0fb3dc 100644 --- a/ext/standard/dir.c +++ b/ext/standard/dir.c @@ -423,16 +423,15 @@ PHP_FUNCTION(glob) #endif if (PG(open_basedir) && *PG(open_basedir)) { - size_t base_len = php_dirname(pattern, strlen(pattern)); - char pos = pattern[base_len]; - - pattern[base_len] = '\0'; - + int pattern_len = strlen(pattern); + char *basename = estrndup(pattern, pattern_len); + + php_dirname(basename, pattern_len); if (php_check_open_basedir(pattern TSRMLS_CC)) { + efree(basename); RETURN_FALSE; } - - pattern[base_len] = pos; + efree(basename); } globbuf.gl_offs = 0; diff --git a/ext/standard/tests/file/bug41655_1.phpt b/ext/standard/tests/file/bug41655_1.phpt index 9b047bcace..9338ebd817 100644 --- a/ext/standard/tests/file/bug41655_1.phpt +++ b/ext/standard/tests/file/bug41655_1.phpt @@ -7,4 +7,4 @@ open_basedir=/tmp $a=glob("./*.jpeg"); ?> --EXPECTF-- -Warning: glob() [%s]: open_basedir restriction in effect. File(.) is not within the allowed path(s): (/tmp) in %s on line %d +Warning: glob(): open_basedir restriction in effect. File(.) is not within the allowed path(s): (/tmp) in %s on line %d