aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordequis <dx@dxzone.com.ar>2015-11-25 23:32:54 -0300
committerdequis <dx@dxzone.com.ar>2015-11-25 23:32:54 -0300
commit1ec454cf138125d65b75d4f0516c7e097d22db6b (patch)
tree289557f3d19bcaf33f12d8369f7406fd0979ff08
parenta3019499665384a3dcbbc11016d256e6d4dcd26c (diff)
purple: fix a bunch of small leaks
Most of them related to channel joins, one of them related to my recent certificate pool path fix.
-rw-r--r--protocols/purple/purple.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/protocols/purple/purple.c b/protocols/purple/purple.c
index 10864e9e..99f8865b 100644
--- a/protocols/purple/purple.c
+++ b/protocols/purple/purple.c
@@ -132,6 +132,7 @@ static void purple_init(account_t *acc)
pool = purple_certificate_find_pool("x509", "tls_peers");
dir = purple_certificate_pool_mkpath(pool, NULL);
purple_build_dir(dir, 0700);
+ g_free(dir);
dir_fixed = TRUE;
}
@@ -360,6 +361,10 @@ static void purple_logout(struct im_connection *ic)
return;
}
+ while (ic->groupchats) {
+ imcb_chat_free(ic->groupchats->data);
+ }
+
purple_account_set_enabled(pd->account, "BitlBee", FALSE);
purple_connections = g_slist_remove(purple_connections, ic);
purple_accounts_remove(pd->account);
@@ -713,10 +718,16 @@ struct groupchat *purple_chat_join(struct im_connection *ic, const char *room, c
} else if (strcmp(pce->identifier, "passwd") == 0) {
g_hash_table_replace(chat_hash, "passwd", g_strdup(password));
}
+
+ g_free(pce);
}
+ g_list_free(info);
+
serv_join_chat(purple_account_get_connection(pd->account), chat_hash);
+ g_hash_table_destroy(chat_hash);
+
return imcb_chat_new(ic, room);
}