summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-07-30 10:40:32 +0400
committerDmitry Stogov <dmitry@zend.com>2014-07-30 10:40:32 +0400
commit8ad3445713a56548ddf7af71d9ce7c191b944d00 (patch)
tree26ec1936b269f9654a78b4ecc0bf9763b744da5d
parent0e04d542e98c559b044c2a72a1f2b559b05f9702 (diff)
parent43e956a9a1b72dda31f24f1fc9804e19f3391dd4 (diff)
downloadphp-git-8ad3445713a56548ddf7af71d9ce7c191b944d00.tar.gz
Merge branch 'PHP-5.6'
* PHP-5.6: Fixed usage after free
-rw-r--r--ext/opcache/zend_accelerator_util_funcs.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/opcache/zend_accelerator_util_funcs.c b/ext/opcache/zend_accelerator_util_funcs.c
index 33103e54d1..9311024851 100644
--- a/ext/opcache/zend_accelerator_util_funcs.c
+++ b/ext/opcache/zend_accelerator_util_funcs.c
@@ -1041,7 +1041,6 @@ zend_op_array* zend_accel_load_script(zend_persistent_script *persistent_script,
if (zend_hash_num_elements(&persistent_script->class_table) > 0) {
zend_accel_class_hash_copy(CG(class_table), &persistent_script->class_table, NULL TSRMLS_CC);
}
- free_persistent_script(persistent_script, 0); /* free only hashes */
}
#if ZEND_EXTENSION_API_NO >= PHP_5_3_X_API_NO
@@ -1053,6 +1052,10 @@ zend_op_array* zend_accel_load_script(zend_persistent_script *persistent_script,
}
#endif
+ if (!from_shared_memory) {
+ free_persistent_script(persistent_script, 0); /* free only hashes */
+ }
+
return op_array;
}