mirror of
https://github.com/php/php-src.git
synced 2024-11-24 18:34:21 +08:00
Merge branch 'PHP-5.5' into PHP-5.6
This commit is contained in:
commit
4e16054b7a
28
ext/opcache/tests/bug67215.phpt
Normal file
28
ext/opcache/tests/bug67215.phpt
Normal file
@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Bug #67215 (php-cgi work with opcache, may be segmentation fault happen)
|
||||
--INI--
|
||||
opcache.enable=1
|
||||
opcache.enable_cli=1
|
||||
opcache.file_update_protection=0
|
||||
--SKIPIF--
|
||||
<?php require_once('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$file_c = __DIR__ . "/bug67215.c.php";
|
||||
$file_p = __DIR__ . "/bug67215.p.php";
|
||||
file_put_contents($file_c, "<?php require \"$file_p\"; class c extends p {} ?>");
|
||||
file_put_contents($file_p, '<?php class p { protected $var = ""; } ?>');
|
||||
require $file_c;
|
||||
$a = new c();
|
||||
require $file_c;
|
||||
?>
|
||||
--CLEAN--
|
||||
<?php
|
||||
$file_c = __DIR__ . "/bug67215.c.php";
|
||||
$file_p = __DIR__ . "/bug67215.p.php";
|
||||
unlink($file_c);
|
||||
unlink($file_p);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Cannot redeclare class c in %sbug67215.c.php on line %d
|
@ -899,16 +899,11 @@ static int zend_hash_unique_copy(HashTable *target, HashTable *source, unique_co
|
||||
if (p->nKeyLength > 0 && p->arKey[0] == 0) {
|
||||
/* Mangled key */
|
||||
#if ZEND_EXTENSION_API_NO >= PHP_5_3_X_API_NO
|
||||
if (((zend_function*)p->pData)->common.fn_flags & ZEND_ACC_CLOSURE) {
|
||||
/* update closure */
|
||||
if (zend_hash_quick_update(target, p->arKey, p->nKeyLength, p->h, p->pData, size, &t) == SUCCESS) {
|
||||
if (pCopyConstructor) {
|
||||
pCopyConstructor(t);
|
||||
}
|
||||
if (zend_hash_quick_update(target, p->arKey, p->nKeyLength, p->h, p->pData, size, &t) == SUCCESS) {
|
||||
if (pCopyConstructor) {
|
||||
pCopyConstructor(t);
|
||||
}
|
||||
} else {
|
||||
/* ignore and wait for runtime */
|
||||
}
|
||||
}
|
||||
#endif
|
||||
} else if (!ignore_dups && zend_hash_quick_find(target, p->arKey, p->nKeyLength, p->h, &t) == SUCCESS) {
|
||||
*fail_data = p->pData;
|
||||
|
Loading…
Reference in New Issue
Block a user