From 2f56c7f3435f9df8fb44c41b5284383558d84b8b Mon Sep 17 00:00:00 2001 From: Greg Beaver Date: Mon, 21 Apr 2008 17:46:24 +0000 Subject: [PATCH] new test for custom 404 handler, fix segfault found by test --- ext/phar/phar_object.c | 6 ++++++ ext/phar/tests/files/frontcontroller8.phar | Bin 421 -> 479 bytes ext/phar/tests/files/frontcontroller8.phar.inc | 3 ++- ext/phar/tests/files/frontcontroller9.phar | Bin 448 -> 448 bytes ext/phar/tests/frontcontroller24.phpt | 14 ++++++++++++++ 5 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 ext/phar/tests/frontcontroller24.phpt diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c index acfa4903be..a3af3695d4 100755 --- a/ext/phar/phar_object.c +++ b/ext/phar/phar_object.c @@ -419,6 +419,12 @@ static void phar_postprocess_ru_web(char *fname, int fname_len, char **entry, in u[0] = '\0'; u_len = strlen(u + 1); e_len -= u_len + 1; + if (e_len < 0) { + if (saveu) { + saveu[0] = '/'; + } + return; + } } while (1); } /* }}} */ diff --git a/ext/phar/tests/files/frontcontroller8.phar b/ext/phar/tests/files/frontcontroller8.phar index 213fe35d4da795b6c3427d6c299b29f58b5e8cc5..a53bfe899634d7244ed7cd6b2e90371ece2e35e9 100644 GIT binary patch delta 153 zcmZ3=e4lxOE~k=-fr(y0MuE~q!>OzX7#J8>C!UsPS#pubW8ynmFg=-{5y~)NRMrQ{ zumF`QK1)5ijSG@VF0HqZ&ixr9z%TtTNLsjPDu7#LV4UXXWVSEzSq0djcTv$eM|0vSNS3dD(eSq14J z37CTI*OE4&Dk#V(5Q8e1Y|5z215>H^EcNK*c1A6kFH5F>Io&%;)#GsetStub(' "foo/bar", "phps" => Phar::PHP, "php" => Phar::PHPS)); +Phar::webPhar("whatever", "index.php", "404.php", array("jpg" => "foo/bar", "phps" => Phar::PHP, "php" => Phar::PHPS)); echo "oops did not run\n"; var_dump($_ENV, $_SERVER); __HALT_COMPILER();'); diff --git a/ext/phar/tests/files/frontcontroller9.phar b/ext/phar/tests/files/frontcontroller9.phar index d84b11b87504bf9c4973c1135c72f203ef14d403..39ca28c96cfaec73cc9f195aece427d0228305fb 100644 GIT binary patch delta 72 zcmX@We1LfaDxxNIT>Xk3@sSLn^74eQp9K^V>LJC<^J_MuIle|<6F;XGm~ZE OtLsb*3=Hm0zD@v$Q5i-6 delta 72 zcmX@We1LfaDXk3@sSLn^74eQp9K^v-@-NJk?NfnUKUfRf!fI#jKZ; N8<`jw7~GwFodDD`8FBys diff --git a/ext/phar/tests/frontcontroller24.phpt b/ext/phar/tests/frontcontroller24.phpt new file mode 100644 index 0000000000..dca5a693cd --- /dev/null +++ b/ext/phar/tests/frontcontroller24.phpt @@ -0,0 +1,14 @@ +--TEST-- +Phar front controller with custom 404 php script +--SKIPIF-- + +--ENV-- +SCRIPT_NAME=/frontcontroller24.php +REQUEST_URI=/frontcontroller24.php/unknown/file +PATH_INFO=/unknown/file +--FILE_EXTERNAL-- +files/frontcontroller8.phar +--EXPECTHEADERS-- +Content-type: text/html +--EXPECTF-- +My 404 is rawesome \ No newline at end of file -- 2.50.1