From: Xinchen Hui Date: Wed, 19 Feb 2014 10:34:27 +0000 (+0800) Subject: Fixed segfault in BEGIN/END SILENT X-Git-Tag: POST_PHPNG_MERGE~412^2~620 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=757facf6c184093734ddfd0c2f28e84bc9f9b6ee;p=php Fixed segfault in BEGIN/END SILENT --- diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 58dcb48ce8..0a9d86490d 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -4676,7 +4676,7 @@ ZEND_VM_HANDLER(58, ZEND_END_SILENCE, TMP, ANY) EG(error_reporting_ini_entry)->value != EG(error_reporting_ini_entry)->orig_value)) { efree(EG(error_reporting_ini_entry)->value); } - EG(error_reporting_ini_entry)->value = Z_STRVAL(restored_error_reporting); + EG(error_reporting_ini_entry)->value = estrndup(Z_STRVAL(restored_error_reporting), Z_STRLEN(restored_error_reporting)); EG(error_reporting_ini_entry)->value_length = Z_STRLEN(restored_error_reporting); } else { zval_dtor(&restored_error_reporting); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index cd0395c6c6..7505189e51 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -8100,7 +8100,7 @@ static int ZEND_FASTCALL ZEND_END_SILENCE_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ EG(error_reporting_ini_entry)->value != EG(error_reporting_ini_entry)->orig_value)) { efree(EG(error_reporting_ini_entry)->value); } - EG(error_reporting_ini_entry)->value = Z_STRVAL(restored_error_reporting); + EG(error_reporting_ini_entry)->value = estrndup(Z_STRVAL(restored_error_reporting), Z_STRLEN(restored_error_reporting)); EG(error_reporting_ini_entry)->value_length = Z_STRLEN(restored_error_reporting); } else { zval_dtor(&restored_error_reporting);