# HG changeset patch # User Daniel Atallah # Date 1217357703 0 # Node ID 6659ba7b39419ba94470c884f83a2439f64b46da # Parent f4001a13076529c7ed3a74913a9cede5e7be1590 Fix a crash when the user isn't in your list. diff -r f4001a130765 -r 6659ba7b3941 libpurple/protocols/msn/msn.c --- a/libpurple/protocols/msn/msn.c Tue Jul 29 18:53:00 2008 +0000 +++ b/libpurple/protocols/msn/msn.c Tue Jul 29 18:55:03 2008 +0000 @@ -583,9 +583,7 @@ msn_can_receive_file(PurpleConnection *gc, const char *who) { PurpleAccount *account; - char *normal; - MsnSession *session; - MsnUser *user; + gchar *normal; gboolean ret; account = purple_connection_get_account(gc); @@ -595,9 +593,10 @@ g_free(normal); if (ret) { - session = gc->proto_data; - user = msn_userlist_find_user(session->userlist, who); - ret = (user->clientid & MSN_CLIENT_CAP_WEBMSGR) == 0; + MsnSession *session = gc->proto_data; + MsnUser *user = msn_userlist_find_user(session->userlist, who); + if (user) + ret = (user->clientid & MSN_CLIENT_CAP_WEBMSGR) == 0; /* Include these too: MSN_CLIENT_CAP_MSNMOBILE|MSN_CLIENT_CAP_MSNDIRECT ? */ } @@ -1352,6 +1351,7 @@ if (group_id >= 0) { + /* This is wrong... user->group_ids contains g_strdup()'d data now */ user->group_ids = g_list_append(user->group_ids, GINT_TO_POINTER(group_id)); }