summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2004-07-23 07:13:54 +0000
committerMarcus Boerger <helly@php.net>2004-07-23 07:13:54 +0000
commit5ff2111a5970829de6a47183ad44aef8197345d6 (patch)
tree2a30e465da3cf6a0dc8d144663a824d0abea4fcd
parent67c42a4a9bc21f1548615d61a6832d7adf045596 (diff)
downloadphp-git-5ff2111a5970829de6a47183ad44aef8197345d6.tar.gz
Fix 0 Byte leak after alloca to emalloc change
-rw-r--r--Zend/zend_execute.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 4acdcf2c9b..9d997576ea 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1330,7 +1330,7 @@ static int zend_check_symbol(zval **pz TSRMLS_DC)
}
#define RETURN_FROM_EXECUTE_LOOP(execute_data) \
- efree(EX(Ts)); \
+ if (EX(Ts)) efree(EX(Ts)); \
EG(in_execution) = EX(original_in_execution); \
EG(current_execute_data) = EX(prev_execute_data); \
return 1; /* CHECK_ME */
@@ -1349,7 +1349,7 @@ ZEND_API void execute(zend_op_array *op_array TSRMLS_DC)
/* Initialize execute_data */
EX(fbc) = NULL;
EX(object) = NULL;
- EX(Ts) = (temp_variable *) safe_emalloc(sizeof(temp_variable), op_array->T, 0);
+ EX(Ts) = (temp_variable *) (op_array->T ? safe_emalloc(sizeof(temp_variable), op_array->T, 0) : NULL);
EX(op_array) = op_array;
EX(original_in_execution) = EG(in_execution);
EX(prev_execute_data) = EG(current_execute_data);