]> granicus.if.org Git - php/commitdiff
MFH fix mem leak, add test for previous segfault fix
authorGreg Beaver <cellog@php.net>
Sun, 18 May 2008 23:41:17 +0000 (23:41 +0000)
committerGreg Beaver <cellog@php.net>
Sun, 18 May 2008 23:41:17 +0000 (23:41 +0000)
ext/phar/phar_object.c
ext/phar/tests/config.xml [new file with mode: 0644]
ext/phar/tests/files/blog.phar [new file with mode: 0644]
ext/phar/tests/front.phar.phpt [new file with mode: 0644]

index 1b4035a4a9e86204a7a4bf9ca755e6bfcee0e4da..a8805ab2b2b1f3f18dcd9136c0bb569459f11499 100755 (executable)
@@ -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 (file)
index 0000000..e69de29
diff --git a/ext/phar/tests/files/blog.phar b/ext/phar/tests/files/blog.phar
new file mode 100644 (file)
index 0000000..16f8f7d
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 (file)
index 0000000..83c6a42
--- /dev/null
@@ -0,0 +1,16 @@
+--TEST--
+Phar front controller with mounted external file
+--INI--
+default_charset=
+--SKIPIF--
+<?php if (!extension_loaded("phar")) die("skip"); ?>
+--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