diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2018-05-03 12:12:07 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2018-05-03 12:12:07 +0300 |
| commit | 5a31e14beba625f1b32d61d6aec85b3df7f023cc (patch) | |
| tree | 5e2d6ed0d24a0fd9a7f819548484f48f3db67325 | |
| parent | a8ec35ac38ed95bed06e24541a431d5b9c07e129 (diff) | |
| parent | 3fe2e2a3720745c9e03dd062d3c75ea8789b27d3 (diff) | |
| download | php-git-5a31e14beba625f1b32d61d6aec85b3df7f023cc.tar.gz | |
Merge branch 'PHP-7.2'
* PHP-7.2:
Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp)
| -rw-r--r-- | ext/opcache/zend_file_cache.c | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/ext/opcache/zend_file_cache.c b/ext/opcache/zend_file_cache.c index 6f6b05c45c..ca7b9cf92e 100644 --- a/ext/opcache/zend_file_cache.c +++ b/ext/opcache/zend_file_cache.c @@ -550,14 +550,13 @@ static void zend_file_cache_serialize_prop_info(zval *zv, prop = Z_PTR_P(zv); UNSERIALIZE_PTR(prop); - if (prop->ce && !IS_SERIALIZED(prop->ce)) { + ZEND_ASSERT(prop->ce != NULL && prop->name != NULL); + if (!IS_SERIALIZED(prop->ce)) { SERIALIZE_PTR(prop->ce); - } - if (prop->name && !IS_SERIALIZED(prop->name)) { SERIALIZE_STR(prop->name); - } - if (prop->doc_comment && !IS_SERIALIZED(prop->doc_comment)) { - SERIALIZE_STR(prop->doc_comment); + if (prop->doc_comment) { + SERIALIZE_STR(prop->doc_comment); + } } } } @@ -574,12 +573,15 @@ static void zend_file_cache_serialize_class_constant(zval *z c = Z_PTR_P(zv); UNSERIALIZE_PTR(c); - zend_file_cache_serialize_zval(&c->value, script, info, buf); - if (c->ce && !IS_SERIALIZED(c->ce)) { + ZEND_ASSERT(c->ce != NULL); + if (!IS_SERIALIZED(c->ce)) { SERIALIZE_PTR(c->ce); - } - if (c->doc_comment && !IS_SERIALIZED(c->doc_comment)) { - SERIALIZE_STR(c->doc_comment); + + zend_file_cache_serialize_zval(&c->value, script, info, buf); + + if (c->doc_comment) { + SERIALIZE_STR(c->doc_comment); + } } } } @@ -1179,14 +1181,13 @@ static void zend_file_cache_unserialize_prop_info(zval *zv, UNSERIALIZE_PTR(Z_PTR_P(zv)); prop = Z_PTR_P(zv); - if (prop->ce && !IS_UNSERIALIZED(prop->ce)) { + ZEND_ASSERT(prop->ce != NULL && prop->name != NULL); + if (!IS_UNSERIALIZED(prop->ce)) { UNSERIALIZE_PTR(prop->ce); - } - if (prop->name && !IS_UNSERIALIZED(prop->name)) { UNSERIALIZE_STR(prop->name); - } - if (prop->doc_comment && !IS_UNSERIALIZED(prop->doc_comment)) { - UNSERIALIZE_STR(prop->doc_comment); + if (prop->doc_comment) { + UNSERIALIZE_STR(prop->doc_comment); + } } } } @@ -1201,12 +1202,15 @@ static void zend_file_cache_unserialize_class_constant(zval * UNSERIALIZE_PTR(Z_PTR_P(zv)); c = Z_PTR_P(zv); - zend_file_cache_unserialize_zval(&c->value, script, buf); - if (c->ce && !IS_UNSERIALIZED(c->ce)) { + ZEND_ASSERT(c->ce != NULL); + if (!IS_UNSERIALIZED(c->ce)) { UNSERIALIZE_PTR(c->ce); - } - if (c->doc_comment && !IS_UNSERIALIZED(c->doc_comment)) { - UNSERIALIZE_STR(c->doc_comment); + + zend_file_cache_unserialize_zval(&c->value, script, buf); + + if (c->doc_comment) { + UNSERIALIZE_STR(c->doc_comment); + } } } } |
