]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.0'
authorXinchen Hui <laruence@gmail.com>
Tue, 12 Jul 2016 03:52:21 +0000 (11:52 +0800)
committerXinchen Hui <laruence@gmail.com>
Tue, 12 Jul 2016 03:52:21 +0000 (11:52 +0800)
* PHP-7.0:
  Fixed bug #72581 (previous property undefined in Exception after deserialization)

Conflicts:
Zend/zend_exceptions.c

1  2 
Zend/zend_exceptions.c

index f73dde1a974ebb3f34e4a80b67b1e731533b0016,374f3045b3e86fbdef0ea6a1db3a51d2ff54187c..7fd55a4fc81418cdd916fdcd4a1144b645fcd4da
@@@ -302,12 -290,11 +302,11 @@@ ZEND_METHOD(exception, __construct
  
  /* {{{ proto Exception::__wakeup()
     Exception unserialize checks */
 -#define CHECK_EXC_TYPE(name, type) \
 -      pvalue = zend_read_property(i_get_exception_base(object), (object), name, sizeof(name) - 1, 1, &value); \
 +#define CHECK_EXC_TYPE(id, type) \
-       ZVAL_UNDEF(&value); \
 +      pvalue = zend_read_property_ex(i_get_exception_base(object), (object), CG(known_strings)[id], 1, &value); \
-       if(Z_TYPE_P(pvalue) != IS_UNDEF && Z_TYPE_P(pvalue) != type) { \
+       if (Z_TYPE_P(pvalue) != IS_NULL && Z_TYPE_P(pvalue) != type) { \
                zval tmp; \
 -              ZVAL_STRINGL(&tmp, name, sizeof(name) - 1); \
 +              ZVAL_STR_COPY(&tmp, CG(known_strings)[id]); \
                Z_OBJ_HANDLER_P(object, unset_property)(object, &tmp, NULL); \
                zval_ptr_dtor(&tmp); \
        }