From eb99aa475ebc06ab09a6c2204194910c58762c47 Mon Sep 17 00:00:00 2001 From: Greg Beaver Date: Sun, 18 May 2008 23:41:17 +0000 Subject: [PATCH] MFH fix mem leak, add test for previous segfault fix --- ext/phar/phar_object.c | 4 +++- ext/phar/tests/config.xml | 0 ext/phar/tests/files/blog.phar | Bin 0 -> 513 bytes ext/phar/tests/front.phar.phpt | 16 ++++++++++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 ext/phar/tests/config.xml create mode 100644 ext/phar/tests/files/blog.phar create mode 100644 ext/phar/tests/front.phar.phpt diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c index 1b4035a4a9..a8805ab2b2 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 0000000000000000000000000000000000000000..16f8f7d5900e0218c2bfd8e16e2a078570641a64 GIT binary patch literal 513 zcmcDqFUTn1QsBx=(@4wANsUjf$Sf`?)=-F#ckv90k5|xBP}fh+&r8cp*Q?0QQPN*PQnRzLx6?#C& zsB2nt#m9R%`h>(g`}+oX`nU#ZXj&`S+wpS6F)%PN0kI$uGXgOLZ~`f~?v+5!vMmN4 zAlmV6h|V^sI&QF{;*!Li9FQftP-P(6^>ke)OqmThI5N`|G!&7817~O`RC94=<|XHp zrlg{HIx`P$mAW+-Cooh?Kz`TP;!;3DTKZgNiAC`#rMU%=&`(b-i3bK`NopQ24&at5 zA;o}_CNOyH?YJNg#WasAH8~?+K?!QV5?C$QM~}7oXT`P6d#kod-aQj+{C>v17oc!- Ick*=t05$QBO#lD@ literal 0 HcmV?d00001 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 -- 2.50.1