libpurple/protocols/simple/simple.c

branch
release-2.x.y
changeset 40912
08b79a9a0ad2
parent 40755
fb2056ce3c58
child 40922
128a40bc6e88
--- a/libpurple/protocols/simple/simple.c	Tue Jun 01 20:21:04 2021 -0500
+++ b/libpurple/protocols/simple/simple.c	Tue Jun 01 20:21:29 2021 -0500
@@ -1803,6 +1803,7 @@
 static void simple_udp_host_resolved(GSList *hosts, gpointer data, const char *error_message) {
 	struct simple_account_data *sip = (struct simple_account_data*) data;
 	int addr_size;
+	gpointer hosts_data;
 
 	sip->query_data = NULL;
 
@@ -1816,12 +1817,14 @@
 	addr_size = GPOINTER_TO_INT(hosts->data);
 	hosts = g_slist_remove(hosts, hosts->data);
 	memcpy(&(sip->serveraddr), hosts->data, addr_size);
-	g_free(hosts->data);
+	hosts_data = hosts->data;
 	hosts = g_slist_remove(hosts, hosts->data);
+	g_free(hosts_data);
 	while(hosts) {
 		hosts = g_slist_remove(hosts, hosts->data);
-		g_free(hosts->data);
+		hosts_data = hosts->data;
 		hosts = g_slist_remove(hosts, hosts->data);
+		g_free(hosts_data);
 	}
 
 	/* create socket for incoming connections */

mercurial