From 8b23cae172e265b4cc47cec104cacdce0a7c2dbc Mon Sep 17 00:00:00 2001 From: Nuno Lopes Date: Sun, 1 Jan 2012 22:45:58 +0000 Subject: [PATCH] fix memory leak in compile_string when there's a parse error (used e.g. in eval or assert) --- Zend/zend_language_scanner.l | 2 ++ tests/lang/019.phpt | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 629168f813..7668798297 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -756,6 +756,8 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC) if (compiler_result==1) { CG(active_op_array) = original_active_op_array; CG(unclean_shutdown)=1; + destroy_op_array(op_array TSRMLS_CC); + efree(op_array); retval = NULL; } else { zend_do_return(NULL, 0 TSRMLS_CC); diff --git a/tests/lang/019.phpt b/tests/lang/019.phpt index 6c0a1cab62..be65fb0db8 100644 --- a/tests/lang/019.phpt +++ b/tests/lang/019.phpt @@ -3,8 +3,6 @@ eval() test --FILE--