diff options
author | Dmitry Stogov <dmitry@zend.com> | 2016-07-14 13:05:27 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2016-07-14 13:05:27 +0300 |
commit | f80bb059b35333116cd7b09e559e3f6144be0491 (patch) | |
tree | ec81a91e4ece435c6f8876450c5f41ab4b83e1fd | |
parent | 8c5b27e0617bf0899d7e830ed3029711125a0ddb (diff) | |
download | php-git-f80bb059b35333116cd7b09e559e3f6144be0491.tar.gz |
Fixed memory leak
-rw-r--r-- | Zend/zend_vm_def.h | 4 | ||||
-rw-r--r-- | Zend/zend_vm_execute.h | 12 |
2 files changed, 16 insertions, 0 deletions
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; |