]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.1' into PHP-7.2
authorXinchen Hui <laruence@gmail.com>
Wed, 28 Feb 2018 10:06:49 +0000 (18:06 +0800)
committerXinchen Hui <laruence@gmail.com>
Wed, 28 Feb 2018 10:06:49 +0000 (18:06 +0800)
* PHP-7.1:
  Fixed bug #76025 (Segfault while throwing exception in error_handler).

1  2 
Zend/zend_execute.c

index 555dc4480b895ee8849de4c16ebf2eafe9e43dc0,968618a6aa6987f331e3552909ade332772786ab..8a9ddb2d8da0906e0051d80b96b18fcb818e3d77
@@@ -243,14 -211,15 +243,15 @@@ static zend_always_inline zval *_get_zv
        return ret;
  }
  
 -static zend_never_inline ZEND_COLD void zval_undefined_cv(uint32_t var, const zend_execute_data *execute_data)
 +static zend_never_inline ZEND_COLD void zval_undefined_cv(uint32_t var EXECUTE_DATA_DC)
  {
-       zend_string *cv = CV_DEF_OF(EX_VAR_TO_NUM(var));
-       zend_error(E_NOTICE, "Undefined variable: %s", ZSTR_VAL(cv));
+       if (EXPECTED(EG(exception) == NULL)) {
+               zend_string *cv = CV_DEF_OF(EX_VAR_TO_NUM(var));
+               zend_error(E_NOTICE, "Undefined variable: %s", ZSTR_VAL(cv));
+       }
  }
  
 -static zend_never_inline zval *_get_zval_cv_lookup(zval *ptr, uint32_t var, int type, const zend_execute_data *execute_data)
 +static zend_never_inline zval *_get_zval_cv_lookup(zval *ptr, uint32_t var, int type EXECUTE_DATA_DC)
  {
        switch (type) {
                case BP_VAR_R: