From: Greg Beaver Date: Sun, 18 May 2008 23:41:08 +0000 (+0000) Subject: fix memleak, add test for previous segfault fix X-Git-Tag: BEFORE_NEW_PARAMETER_PARSE~192 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0800b3b1590ab9e094e6602fadd91b826b2d5add;p=php fix memleak, add test for previous segfault fix --- diff --git a/ext/phar/cgidebug b/ext/phar/cgidebug index bacf6910a6..f356f9b104 100755 --- a/ext/phar/cgidebug +++ b/ext/phar/cgidebug @@ -1,11 +1,11 @@ #!/bin/sh -export SCRIPT_NAME=/frontcontroller34.php -export PATH_INFO=/start/index.php -export SCRIPT_FILENAME=/home/cellog/workspace/php5/ext/phar/tests/frontcontroller34.php -export PATH_TRANSLATED=/home/cellog/workspace/php5/ext/phar/tests/frontcontroller34.php +export SCRIPT_NAME=/front.phar.php +export PATH_INFO=/index.php +export SCRIPT_FILENAME=/home/cellog/workspace/php5/ext/phar/tests/front.phar.php +export PATH_TRANSLATED=/home/cellog/workspace/php5/ext/phar/tests/front.phar.php export REDIRECT_STATUS=1 export REQUEST_METHOD=GET -export REQUEST_URI=/frontcontroller34.php/start/index.php +export REQUEST_URI=/front.phar.php/index.php cd /home/cellog/workspace/php5/ ddd sapi/cgi/php-cgi & cd /home/cellog/workspace/php5/ext/phar diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c index 5bc2259647..2f9661adbb 100755 --- a/ext/phar/phar_object.c +++ b/ext/phar/phar_object.c @@ -555,16 +555,18 @@ PHP_METHOD(Phar, webPhar) testit = sapi_getenv("SCRIPT_NAME", sizeof("SCRIPT_NAME")-1 TSRMLS_CC); if (!(pt = strstr(testit, basename))) { + efree(testit); return; } path_info = sapi_getenv("PATH_INFO", sizeof("PATH_INFO")-1 TSRMLS_CC); if (path_info) { - entry = estrdup(path_info); + entry = path_info; entry_len = strlen(entry); spprintf(&path_info, 0, "%s%s", testit, path_info); free_pathinfo = 1; } else { path_info = testit; + free_pathinfo = 1; entry = estrndup("", 0); entry_len = 0; } diff --git a/ext/phar/tests/config.xml b/ext/phar/tests/config.xml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ext/phar/tests/files/blog.phar b/ext/phar/tests/files/blog.phar new file mode 100644 index 0000000000..16f8f7d590 Binary files /dev/null and b/ext/phar/tests/files/blog.phar differ diff --git a/ext/phar/tests/front.phar.phpt b/ext/phar/tests/front.phar.phpt new file mode 100644 index 0000000000..83c6a42284 --- /dev/null +++ b/ext/phar/tests/front.phar.phpt @@ -0,0 +1,16 @@ +--TEST-- +Phar front controller with mounted external file +--INI-- +default_charset= +--SKIPIF-- + +--ENV-- +SCRIPT_NAME=/front.phar.php +REQUEST_URI=/front.phar.php/index.php +PATH_INFO=/index.php +--EXPECTHEADERS-- +Content-type: text/html +--FILE_EXTERNAL-- +files/blog.phar +--EXPECT-- +string(0) "" \ No newline at end of file