Skip to content

Commit 3fe2e2a

Browse files
committed
Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1: Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp)
2 parents afc3f6e + 5b3e1de commit 3fe2e2a

File tree

2 files changed

+27
-22
lines changed

2 files changed

+27
-22
lines changed

NEWS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ PHP NEWS
1010
(mgorny)
1111

1212
- Opcache:
13+
. Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp). (Dmitry)
1314
. Fixed bug #76275 (Assertion failure in file cache when unserializing empty
1415
try_catch_array). (Nikita)
1516
. Fixed bug #76281 (Opcache causes incorrect "undefined variable" errors).

ext/opcache/zend_file_cache.c

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -535,14 +535,13 @@ static void zend_file_cache_serialize_prop_info(zval *zv,
535535
prop = Z_PTR_P(zv);
536536
UNSERIALIZE_PTR(prop);
537537

538-
if (prop->ce && !IS_SERIALIZED(prop->ce)) {
538+
ZEND_ASSERT(prop->ce != NULL && prop->name != NULL);
539+
if (!IS_SERIALIZED(prop->ce)) {
539540
SERIALIZE_PTR(prop->ce);
540-
}
541-
if (prop->name && !IS_SERIALIZED(prop->name)) {
542541
SERIALIZE_STR(prop->name);
543-
}
544-
if (prop->doc_comment && !IS_SERIALIZED(prop->doc_comment)) {
545-
SERIALIZE_STR(prop->doc_comment);
542+
if (prop->doc_comment) {
543+
SERIALIZE_STR(prop->doc_comment);
544+
}
546545
}
547546
}
548547
}
@@ -559,12 +558,15 @@ static void zend_file_cache_serialize_class_constant(zval *z
559558
c = Z_PTR_P(zv);
560559
UNSERIALIZE_PTR(c);
561560

562-
zend_file_cache_serialize_zval(&c->value, script, info, buf);
563-
if (c->ce && !IS_SERIALIZED(c->ce)) {
561+
ZEND_ASSERT(c->ce != NULL);
562+
if (!IS_SERIALIZED(c->ce)) {
564563
SERIALIZE_PTR(c->ce);
565-
}
566-
if (c->doc_comment && !IS_SERIALIZED(c->doc_comment)) {
567-
SERIALIZE_STR(c->doc_comment);
564+
565+
zend_file_cache_serialize_zval(&c->value, script, info, buf);
566+
567+
if (c->doc_comment) {
568+
SERIALIZE_STR(c->doc_comment);
569+
}
568570
}
569571
}
570572
}
@@ -1159,14 +1161,13 @@ static void zend_file_cache_unserialize_prop_info(zval *zv,
11591161
UNSERIALIZE_PTR(Z_PTR_P(zv));
11601162
prop = Z_PTR_P(zv);
11611163

1162-
if (prop->ce && !IS_UNSERIALIZED(prop->ce)) {
1164+
ZEND_ASSERT(prop->ce != NULL && prop->name != NULL);
1165+
if (!IS_UNSERIALIZED(prop->ce)) {
11631166
UNSERIALIZE_PTR(prop->ce);
1164-
}
1165-
if (prop->name && !IS_UNSERIALIZED(prop->name)) {
11661167
UNSERIALIZE_STR(prop->name);
1167-
}
1168-
if (prop->doc_comment && !IS_UNSERIALIZED(prop->doc_comment)) {
1169-
UNSERIALIZE_STR(prop->doc_comment);
1168+
if (prop->doc_comment) {
1169+
UNSERIALIZE_STR(prop->doc_comment);
1170+
}
11701171
}
11711172
}
11721173
}
@@ -1181,12 +1182,15 @@ static void zend_file_cache_unserialize_class_constant(zval *
11811182
UNSERIALIZE_PTR(Z_PTR_P(zv));
11821183
c = Z_PTR_P(zv);
11831184

1184-
zend_file_cache_unserialize_zval(&c->value, script, buf);
1185-
if (c->ce && !IS_UNSERIALIZED(c->ce)) {
1185+
ZEND_ASSERT(c->ce != NULL);
1186+
if (!IS_UNSERIALIZED(c->ce)) {
11861187
UNSERIALIZE_PTR(c->ce);
1187-
}
1188-
if (c->doc_comment && !IS_UNSERIALIZED(c->doc_comment)) {
1189-
UNSERIALIZE_STR(c->doc_comment);
1188+
1189+
zend_file_cache_unserialize_zval(&c->value, script, buf);
1190+
1191+
if (c->doc_comment) {
1192+
UNSERIALIZE_STR(c->doc_comment);
1193+
}
11901194
}
11911195
}
11921196
}

0 commit comments

Comments
 (0)