com php-src: Added test for bug #74596: ext/opcache/tests/bug74596.phpt
[email protected] (Xinchen Hui)
| Newsgroups | php.cvs |
|---|---|
| Message-ID | <[email protected]> |
Commit: e347b2ded6c9125c31e499a62c872d5cd600cae5 Author: Xinchen Hui <[email protected]> Wed, 17 May 2017 22:42:18 +0800 Parents: 8a1713e39cf31f5c13839c8a6aeb784e365e1cd1 Branches: PHP-7.0 PHP-7.1 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=e347b2ded6c9125c31e499a62c872d5cd600cae5 Log: Added test for bug #74596 Bugs: https://bugs.php.net/74596 Changed paths: A ext/opcache/tests/bug74596.phpt Diff: diff --git a/ext/opcache/tests/bug74596.phpt b/ext/opcache/tests/bug74596.phpt new file mode 100644 index 0000000..ed1c1b4 --- /dev/null +++ b/ext/opcache/tests/bug74596.phpt @@ -0,0 +1,55 @@ +--TEST-- +Bug #74596 (SIGSEGV with opcache.revalidate_path enabled) +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.file_update_protection=0 +opcache.validate_timestamps=0 +opcache.file_cache_only=0 +opcache.revalidate_path=1 +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php + +file_put_contents(__DIR__ . "/bug74596_1.php", <<<CODE +<?php +class A { + public function __construct() { + \$a = true; + if (\$a) { + echo 1 + 2; + } else { + echo 2 + 3; + } + } +} +?> +CODE +); + +file_put_contents(__DIR__ . "/bug74596_2.php", "ok\n"); + +class ufilter extends php_user_filter +{ + function filter($in, $out, &$consumed, $closing) + { + include_once __DIR__ . "/bug74596_1.php"; + while ($bucket = stream_bucket_make_writeable($in)) { + stream_bucket_append($out, $bucket); + } + return PSFS_PASS_ON; + } +} + +stream_filter_register("ufilter", "ufilter"); + +include "php://filter/read=ufilter/resource=" . __DIR__ . "/bug74596_2.php"; +?> +--CLEAN-- +<?php +unlink(__DIR__ . "/bug74596_1.php"); +unlink(__DIR__ . "/bug74596_2.php"); +?> +--EXPECT-- +ok