rrichards               Wed Apr  7 12:24:17 2004 EDT

  Modified files:              
    /php-src/ext/xml    compat.c xml.c 
  Log:
  Fix bug #27821 xml_parse segfaults when xml_set_object called from class method
  fix memleaks in compat.c
  
http://cvs.php.net/diff.php/php-src/ext/xml/compat.c?r1=1.31&r2=1.32&ty=u
Index: php-src/ext/xml/compat.c
diff -u php-src/ext/xml/compat.c:1.31 php-src/ext/xml/compat.c:1.32
--- php-src/ext/xml/compat.c:1.31       Tue Feb 24 07:03:32 2004
+++ php-src/ext/xml/compat.c    Wed Apr  7 12:24:17 2004
@@ -232,6 +232,7 @@
 
                _build_comment(comment, xmlStrlen(comment), &d_comment, 
&d_comment_len);
                parser->h_default(parser->user, d_comment, d_comment_len);
+               xmlFree(d_comment);
        }
 }
 
@@ -257,6 +258,7 @@
                
                _build_entity(name, xmlStrlen(name), &entity, &len);
                parser->h_default(parser->user, (const xmlChar *) entity, len);
+               xmlFree(entity);
        }
 
        return NULL;
http://cvs.php.net/diff.php/php-src/ext/xml/xml.c?r1=1.150&r2=1.151&ty=u
Index: php-src/ext/xml/xml.c
diff -u php-src/ext/xml/xml.c:1.150 php-src/ext/xml/xml.c:1.151
--- php-src/ext/xml/xml.c:1.150 Mon Feb 23 11:19:39 2004
+++ php-src/ext/xml/xml.c       Wed Apr  7 12:24:17 2004
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: xml.c,v 1.150 2004/02/23 16:19:39 chregu Exp $ */
+/* $Id: xml.c,v 1.151 2004/04/07 16:24:17 rrichards Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -380,6 +380,9 @@
        if (parser->baseURI) {
                efree(parser->baseURI);
        }
+       if (parser->object) {
+               zval_ptr_dtor(&parser->object);
+       }
 
        efree(parser);
 }
@@ -1141,14 +1144,17 @@
        if (parser->object) {
                zval_ptr_dtor(&parser->object);
        }
-       
-       parser->object = *mythis;
 
        /* please leave this commented - or ask [EMAIL PROTECTED] before doing it 
(again) */
 /* #ifdef ZEND_ENGINE_2
        zval_add_ref(&parser->object); 
 #endif */
 
+       ALLOC_ZVAL(parser->object);
+       *parser->object = **mythis;
+       zval_copy_ctor(parser->object);
+       INIT_PZVAL(parser->object);
+
        RETVAL_TRUE;
 }
 /* }}} */

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to