diff libpurple/protocols/jabber/parser.c @ 17894:bbd92ee894f2

Fixed a bug in the XMPP parser involving event handlers that replace the xmlnode packet. This caused double frees in this situation. The replacing function must free the xmlnode, since multiple event handlers could do this, and the intermediate xml trees would leak otherwise.
author Andreas Monitzer <pidgin@monitzer.com>
date Tue, 03 Jul 2007 23:51:26 +0000
parents 108f3b42976f
children 481749fc0b6b
line wrap: on
line diff
--- a/libpurple/protocols/jabber/parser.c	Tue Jul 03 15:50:24 2007 +0000
+++ b/libpurple/protocols/jabber/parser.c	Tue Jul 03 23:51:26 2007 +0000
@@ -113,7 +113,7 @@
 	} else {
 		xmlnode *packet = js->current;
 		js->current = NULL;
-		jabber_process_packet(js, packet);
+		jabber_process_packet(js, &packet);
 		xmlnode_free(packet);
 	}
 }