changeset 1125:2ac9bec53c37

Fix a memory leak in libjabber Fix memory leak, with a better algo to detect if we freed of not the memory. Reported by valgrind.
author misc@mandriva.org
date Sat, 13 Jan 2007 14:36:05 +0100
parents 3fcb7c8af2ba
children 771eb6aa2d41
files mcabber/libjabber/jconn.c
diffstat 1 files changed, 9 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/libjabber/jconn.c	Sat Jan 13 11:27:48 2007 +0100
+++ b/mcabber/libjabber/jconn.c	Sat Jan 13 14:36:05 2007 +0100
@@ -192,12 +192,16 @@
  */
 void jab_stop(jconn j)
 {
-    if(!j || j->state == JCONN_STATE_OFF) return;
-
+    if (!j) return;
+    if (j->parser) {
+	XML_ParserFree(j->parser);
+	j->parser = NULL;
+    }
     j->state = JCONN_STATE_OFF;
-    cw_close(j->fd);
-    j->fd = -1;
-    XML_ParserFree(j->parser);
+    if (j->fd >= 0) {
+	cw_close(j->fd);
+	j->fd = -1;
+    }
 }
 
 /*