summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary Kramlich <grim@reaperworld.com>2021-06-01 20:21:29 -0500
committerGary Kramlich <grim@reaperworld.com>2021-06-01 20:21:29 -0500
commit7d89cc56e4b6a19749518b4f3b6a716ebdc667d0 (patch)
treee34711212268f4dfffd561b48c267bbd1be65670
parent90730420b85a693de570dee0af9536231d4f01ce (diff)
downloadpidgin-7d89cc56e4b6a19749518b4f3b6a716ebdc667d0.tar.gz
Fix some issues scanbuild found in the simple protocol plugin
Testing Done: Verified scanbuild no longer detected the errors. Reviewed at https://reviews.imfreedom.org/r/704/
-rw-r--r--libpurple/protocols/simple/simple.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libpurple/protocols/simple/simple.c b/libpurple/protocols/simple/simple.c
index fc4dfef9c0..817b074c01 100644
--- a/libpurple/protocols/simple/simple.c
+++ b/libpurple/protocols/simple/simple.c
@@ -1803,6 +1803,7 @@ static void simple_udp_host_resolved_listen_cb(int listenfd, gpointer data) {
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 @@ static void simple_udp_host_resolved(GSList *hosts, gpointer data, const char *e
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 */