aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/msn/msn.c
diff options
context:
space:
mode:
authordequis <dx@dxzone.com.ar>2015-02-22 19:04:08 -0300
committerdequis <dx@dxzone.com.ar>2015-02-22 19:44:40 -0300
commit05816dd33396f92b7d9348a2acd18537ac18fa1e (patch)
tree980ad6ad4c5efc040d19ec09ed1cecc0104b17eb /protocols/msn/msn.c
parent91f06e5535d3711da06533495b197c1b8e545f82 (diff)
coverity: Fix some (harmless?) use-after-free with g_slist_remove()
These were passing a pointer to a variable right after it was g_free()'d They are most likely harmless as g_slist_remove() probably just needs the pointer location, but fixing it anyway.
Diffstat (limited to 'protocols/msn/msn.c')
-rw-r--r--protocols/msn/msn.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/protocols/msn/msn.c b/protocols/msn/msn.c
index 6ab35696..cb3f842c 100644
--- a/protocols/msn/msn.c
+++ b/protocols/msn/msn.c
@@ -111,10 +111,10 @@ static void msn_logout(struct im_connection *ic)
while (md->groups) {
struct msn_group *mg = md->groups->data;
+ md->groups = g_slist_remove(md->groups, mg);
g_free(mg->id);
g_free(mg->name);
g_free(mg);
- md->groups = g_slist_remove(md->groups, mg);
}
g_free(md->profile_rid);
@@ -126,10 +126,10 @@ static void msn_logout(struct im_connection *ic)
while (md->grpq) {
struct msn_groupadd *ga = md->grpq->data;
+ md->grpq = g_slist_remove(md->grpq, ga);
g_free(ga->group);
g_free(ga->who);
g_free(ga);
- md->grpq = g_slist_remove(md->grpq, ga);
}
g_free(md);