diff options
| author | Moriyoshi Koizumi <moriyoshi@php.net> | 2004-03-04 22:50:55 +0000 |
|---|---|---|
| committer | Moriyoshi Koizumi <moriyoshi@php.net> | 2004-03-04 22:50:55 +0000 |
| commit | c0aabb79b23f0153ad87b232970601bf4daacefa (patch) | |
| tree | 773e3108166a3b33241be964b18bc3c2ecb69478 | |
| parent | e5fb0e3fbde27d068553c6eb92f4326a2b84bed2 (diff) | |
| download | php-git-c0aabb79b23f0153ad87b232970601bf4daacefa.tar.gz | |
- Fix memleak when scanner is called from within tokenizer extension.
# (only happens with zend multibyte feature enabled)
| -rw-r--r-- | Zend/zend_language_scanner.l | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 7d3467010e..2f51f756b0 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -195,6 +195,14 @@ ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC) zend_restore_compiled_filename(lex_state->filename TSRMLS_CC); #ifdef ZEND_MULTIBYTE + if (SCNG(script_org)) { + efree(SCNG(script_org)); + SCNG(script_org) = NULL; + } + if (SCNG(script_filtered)) { + efree(SCNG(script_filtered)); + SCNG(script_filtered) = NULL; + } SCNG(script_org) = lex_state->script_org; SCNG(script_org_size) = lex_state->script_org_size; SCNG(script_filtered) = lex_state->script_filtered; @@ -371,17 +379,6 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSR zend_bailout(); } compilation_successful=1; - -#ifdef ZEND_MULTIBYTE - if (SCNG(script_org)) { - efree(SCNG(script_org)); - SCNG(script_org) = NULL; - } - if (SCNG(script_filtered)) { - efree(SCNG(script_filtered)); - SCNG(script_filtered) = NULL; - } -#endif /* ZEND_MULTIBYTE */ } if (retval) { |
