changeset 4234:64d834b6caf2

[gaim-migrate @ 4480] Fix a crash which happened under the following circumstances (and maybe other, similar circumstances): 1) Add an ICQ buddy that requires authorization to an AIM screen names buddy list 2) Do not request authorization 3) Delete the buddy from your buddy list It crashes because of some code that attempts to free the same memory twice. It's all good. Oh, also: 741 packets transmitted, 462 packets received, +11 duplicates, 37% packet loss That's Time Warner cable for you. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Tue, 07 Jan 2003 23:24:20 +0000
parents d3069a71f14d
children cba92ec56248
files src/protocols/oscar/ssi.c
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/protocols/oscar/ssi.c	Tue Jan 07 22:19:43 2003 +0000
+++ b/src/protocols/oscar/ssi.c	Tue Jan 07 23:24:20 2003 +0000
@@ -1283,7 +1283,7 @@
 			} else
 				item->name = NULL;
 			aim_freetlvchain(&item->data);
-			item->data = data;
+			item->data = aim_tlvlist_copy(data);
 		}
 
 		if ((item = aim_ssi_itemlist_find(sess->ssi.official, gid, bid))) {
@@ -1295,12 +1295,13 @@
 			} else
 				item->name = NULL;
 			aim_freetlvchain(&item->data);
-			item->data = data;
+			item->data = aim_tlvlist_copy(data);
 		}
 
 		if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
 			ret = userfunc(sess, rx);
 
+		aim_freetlvchain(&data);
 		free(name);
 	}