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