summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Villase?or <masca@cpw.pidgin.im>2010-09-18 20:56:11 +0000
committerJorge Villase?or <masca@cpw.pidgin.im>2010-09-18 20:56:11 +0000
commitbe357cc0625d1684bd1edfb4afeb33702cfa8d75 (patch)
treebc01892134c4d55a3be2650dd2cea36cd4f23700
parent2eacf4e53dc41bf30cbc84e70b47950ba453006a (diff)
downloadpidgin-be357cc0625d1684bd1edfb4afeb33702cfa8d75.tar.gz
Fix a crash when we want to remove a user that is not in the switchboard.
-rw-r--r--libpurple/protocols/msn/switchboard.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libpurple/protocols/msn/switchboard.c b/libpurple/protocols/msn/switchboard.c
index f443966fa7..153b6a884c 100644
--- a/libpurple/protocols/msn/switchboard.c
+++ b/libpurple/protocols/msn/switchboard.c
@@ -658,7 +658,10 @@ bye_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
purple_conv_chat_remove_user(PURPLE_CONV_CHAT(swboard->conv), user, NULL);
passport = g_list_find_custom(swboard->users, user, (GCompareFunc)strcmp);
- g_free(passport->data);
+ if (passport)
+ g_free(passport->data);
+ else
+ purple_debug_warning("msn", "Can't find user %s in the switchboard\n", user);
swboard->users = g_list_delete_link(swboard->users, passport);
swboard->current_users--;
if (swboard->current_users == 0)