]> granicus.if.org Git - php/commitdiff
- Fix a possible memory leak in xml_set_handler().
authorMarkus Fischer <mfischer@php.net>
Sat, 13 Apr 2002 05:06:33 +0000 (05:06 +0000)
committerMarkus Fischer <mfischer@php.net>
Sat, 13 Apr 2002 05:06:33 +0000 (05:06 +0000)
  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.

ext/xml/xml.c

index a6ee1aec60a2db9065b8c4d7d08228bb26728561..ce87d361398dd73670a0ba8d8ce2abb369ea5b86 100644 (file)
@@ -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;
 }