diff libpurple/protocols/simple/simple.c @ 18574:94f4048f1380

Fix from Will Hawkins to plug some leaks in error cases for the SIMPLE prpl. References #2181.
author Daniel Atallah <daniel.atallah@gmail.com>
date Fri, 20 Jul 2007 16:31:39 +0000
parents 16bdcffb1c62
children 941965d6fd88 315151da0dc6
line wrap: on
line diff
--- a/libpurple/protocols/simple/simple.c	Fri Jul 20 05:09:46 2007 +0000
+++ b/libpurple/protocols/simple/simple.c	Fri Jul 20 16:31:39 2007 +0000
@@ -976,14 +976,16 @@
 
 		if(!isc) {
 			purple_debug_info("simple", "process_incoming_message: can not parse iscomposing\n");
+			g_free(from);
 			return;
 		}
 
 		state = xmlnode_get_child(isc, "state");
 
 		if(!state) {
-				purple_debug_info("simple", "process_incoming_message: no state found\n");
-				xmlnode_free(isc);
+			purple_debug_info("simple", "process_incoming_message: no state found\n");
+			xmlnode_free(isc);
+			g_free(from);
 			return;
 		}
 
@@ -1063,6 +1065,7 @@
 
 	if(!pidf) {
 		purple_debug_info("simple", "process_incoming_notify: no parseable pidf\n");
+		g_free(from);
 		return;
 	}
 
@@ -1073,6 +1076,7 @@
 	if(!basicstatus) {
 		purple_debug_info("simple", "process_incoming_notify: no basic found\n");
 		xmlnode_free(pidf);
+		g_free(from);
 		return;
 	}
 
@@ -1081,6 +1085,7 @@
 	if(!tmp2) {
 		purple_debug_info("simple", "process_incoming_notify: no basic data found\n");
 		xmlnode_free(pidf);
+		g_free(from);
 		return;
 	}