summaryrefslogtreecommitdiff
path: root/ext/xml/xml.c
diff options
context:
space:
mode:
authorMarkus Fischer <mfischer@php.net>2002-04-13 05:06:33 +0000
committerMarkus Fischer <mfischer@php.net>2002-04-13 05:06:33 +0000
commitc7a1d96f8a3f89c42bbb6bd16eca1d36cc11d579 (patch)
tree73f8e8df4cd27d21fedc5400bc8acf00ee3f839f /ext/xml/xml.c
parent7a8cade379e90bafca21cd983f2f5a4d84a7ff8a (diff)
downloadphp-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.c5
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;
}