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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.