From: Nikita Popov Date: Tue, 7 Jul 2020 10:17:11 +0000 (+0200) Subject: Merge branch 'PHP-7.4' X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2c73bf7e3fc470e8e50cc7283844c9b1d7c2a9d2;p=php Merge branch 'PHP-7.4' * PHP-7.4: Fixed bug #78598 --- 2c73bf7e3fc470e8e50cc7283844c9b1d7c2a9d2 diff --cc Zend/tests/undef_index_to_exception.phpt index 0000000000,d113608a5e..919b0d47a2 mode 000000,100644..100644 --- a/Zend/tests/undef_index_to_exception.phpt +++ b/Zend/tests/undef_index_to_exception.phpt @@@ -1,0 -1,46 +1,46 @@@ + --TEST-- + Converting undefined index/offset notice to exception + --FILE-- + getMessage(), "\n"; + } + var_dump($test); + + try { + $test["key"] .= "xyz"; + } catch (Exception $e) { + echo $e->getMessage(), "\n"; + } + var_dump($test); + + unset($test); + try { + $GLOBALS["test"] .= "xyz"; + } catch (Exception $e) { + echo $e->getMessage(), "\n"; + } + try { + var_dump($test); + } catch (Exception $e) { + echo $e->getMessage(), "\n"; + } + + ?> + --EXPECT-- + Undefined offset: 0 + array(0) { + } + Undefined index: key + array(0) { + } + Undefined index: test -Undefined variable: test ++Undefined variable $test diff --cc Zend/zend_execute.c index fcd2a437e6,7b27c5a3a5..f49b005a14 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@@ -2143,7 -2236,7 +2185,9 @@@ fetch_from_array } else { retval = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, dim_type, type EXECUTE_DATA_CC); if (UNEXPECTED(!retval)) { - ZVAL_UNDEF(result); - ZVAL_ERROR(result); ++ /* This may fail without throwing if the array was modified while throwing an ++ * undefined index error. */ ++ ZVAL_NULL(result); return; } }