diff options
author | Markus Fischer <mfischer@php.net> | 2002-04-13 05:06:33 +0000 |
---|---|---|
committer | Markus Fischer <mfischer@php.net> | 2002-04-13 05:06:33 +0000 |
commit | c7a1d96f8a3f89c42bbb6bd16eca1d36cc11d579 (patch) | |
tree | 73f8e8df4cd27d21fedc5400bc8acf00ee3f839f /ext/xml/xml.c | |
parent | 7a8cade379e90bafca21cd983f2f5a4d84a7ff8a (diff) | |
download | php-git-c7a1d96f8a3f89c42bbb6bd16eca1d36cc11d579.tar.gz |
- Fix a possible memory leak in xml_set_handler().
I stumbled over this while trying out 'pear package' which, while doing
xml parsing, re-assigns the variaous callback handlers depending
on the version during xml processing.
If this check causes problems, let me know.
Diffstat (limited to 'ext/xml/xml.c')
-rw-r--r-- | ext/xml/xml.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ext/xml/xml.c b/ext/xml/xml.c index a6ee1aec60..ce87d36139 100644 --- a/ext/xml/xml.c +++ b/ext/xml/xml.c @@ -354,6 +354,11 @@ static void xml_set_handler(zval **handler, zval **data) convert_to_string_ex(data); } + /* If we have already a handler, release it */ + if (*handler) { + zval_ptr_dtor(handler); + } + zval_add_ref(data); *handler = *data; } |