From: Dmitry Stogov Date: Thu, 14 Jul 2016 10:05:27 +0000 (+0300) Subject: Fixed memory leak X-Git-Tag: php-7.1.0beta1~67^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f80bb059b35333116cd7b09e559e3f6144be0491;p=php Fixed memory leak --- diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 83e74bc8ac..3941df2b6e 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -5444,6 +5444,10 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMPVAR|CV, ANY) } FREE_OP1(); if (UNEXPECTED(EG(exception) != NULL)) { + if (new_op_array != NULL) { + destroy_op_array(new_op_array); + efree_size(new_op_array, sizeof(zend_op_array)); + } HANDLE_EXCEPTION(); } else if (EXPECTED(new_op_array != NULL)) { zval *return_value = NULL; diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 174c6de1c1..d8197ee9f1 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -3637,6 +3637,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HAN } if (UNEXPECTED(EG(exception) != NULL)) { + if (new_op_array != NULL) { + destroy_op_array(new_op_array); + efree_size(new_op_array, sizeof(zend_op_array)); + } HANDLE_EXCEPTION(); } else if (EXPECTED(new_op_array != NULL)) { zval *return_value = NULL; @@ -29298,6 +29302,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLE } if (UNEXPECTED(EG(exception) != NULL)) { + if (new_op_array != NULL) { + destroy_op_array(new_op_array); + efree_size(new_op_array, sizeof(zend_op_array)); + } HANDLE_EXCEPTION(); } else if (EXPECTED(new_op_array != NULL)) { zval *return_value = NULL; @@ -40830,6 +40838,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR_HA } zval_ptr_dtor_nogc(free_op1); if (UNEXPECTED(EG(exception) != NULL)) { + if (new_op_array != NULL) { + destroy_op_array(new_op_array); + efree_size(new_op_array, sizeof(zend_op_array)); + } HANDLE_EXCEPTION(); } else if (EXPECTED(new_op_array != NULL)) { zval *return_value = NULL;