com php-src: Fixed bug #74596 (SIGSEGV with opcache.revalidat e_path enabled): NEWS ext/opcache/ZendAccelerator .c

[email protected] (Xinchen Hui)
Newsgroups php.cvs
Message-ID <[email protected]>
Commit:    89dd7fb328589a9aa1719aa7c642a1378c5a926e
Author:    Xinchen Hui <[email protected]>         Tue, 16 May 2017 13:22:08 +0800
Parents:   777929b1aef20140857d4ce5f1ab5e21c8d0aea0
Branches:  PHP-7.0 PHP-7.1 master

Link:       http://git.php.net/?p=php-src.git;a=commitdiff;h=89dd7fb328589a9aa1719aa7c642a1378c5a926e

Log:
Fixed bug #74596 (SIGSEGV with opcache.revalidate_path enabled)

Yeah, no test script is provided.. I got some troubles to make a one

Bugs:
https://bugs.php.net/74596

Changed paths:
  M  NEWS
  M  ext/opcache/ZendAccelerator.c


Diff:
diff --git a/NEWS b/NEWS
index 12e2e8f..7d55403 100644
--- a/NEWS
+++ b/NEWS
@@ -13,6 +13,9 @@ PHP                                                                        NEWS
   . Fixed bug #74547 (mysqli::change_user() doesn't accept null as $database
     argument w/strict_types). (Anatol)
 
+- Opcache:
+  . Fixed bug #74596 (SIGSEGV with opcache.revalidate_path enabled). (Laruence)
+
 - phar:
   . Fixed bug #51918 (Phar::webPhar() does not handle requests sent through PUT
     and DELETE method). (Christian Weiske)
diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c
index 0db9202..0b7c64b 100644
--- a/ext/opcache/ZendAccelerator.c
+++ b/ext/opcache/ZendAccelerator.c
@@ -1706,7 +1706,10 @@ zend_op_array *persistent_compile_file(zend_file_handle *file_handle, int type)
 				return accelerator_orig_compile_file(file_handle, type);
 			}
 			persistent_script = zend_accel_hash_str_find(&ZCSG(hash), key, key_length);
+		} else if (UNEXPECTED(is_stream_path(file_handle->filename) && !is_cacheable_stream_path(file_handle->filename))) {
+			return accelerator_orig_compile_file(file_handle, type);
 		}
+
 		if (!persistent_script) {
 			/* try to find cached script by full real path */
 			zend_accel_hash_entry *bucket;
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.