comparison libpurple/protocols/msn/msn.c @ 23616:6659ba7b3941

Fix a crash when the user isn't in your list.
author Daniel Atallah <daniel.atallah@gmail.com>
date Tue, 29 Jul 2008 18:55:03 +0000
parents 7f4b697c6947
children 7a71457cdd32
comparison
equal deleted inserted replaced
23615:f4001a130765 23616:6659ba7b3941
581 581
582 static gboolean 582 static gboolean
583 msn_can_receive_file(PurpleConnection *gc, const char *who) 583 msn_can_receive_file(PurpleConnection *gc, const char *who)
584 { 584 {
585 PurpleAccount *account; 585 PurpleAccount *account;
586 char *normal; 586 gchar *normal;
587 MsnSession *session;
588 MsnUser *user;
589 gboolean ret; 587 gboolean ret;
590 588
591 account = purple_connection_get_account(gc); 589 account = purple_connection_get_account(gc);
592 590
593 normal = g_strdup(msn_normalize(account, purple_account_get_username(account))); 591 normal = g_strdup(msn_normalize(account, purple_account_get_username(account)));
594 ret = strcmp(normal, msn_normalize(account, who)); 592 ret = strcmp(normal, msn_normalize(account, who));
595 g_free(normal); 593 g_free(normal);
596 594
597 if (ret) { 595 if (ret) {
598 session = gc->proto_data; 596 MsnSession *session = gc->proto_data;
599 user = msn_userlist_find_user(session->userlist, who); 597 MsnUser *user = msn_userlist_find_user(session->userlist, who);
600 ret = (user->clientid & MSN_CLIENT_CAP_WEBMSGR) == 0; 598 if (user)
599 ret = (user->clientid & MSN_CLIENT_CAP_WEBMSGR) == 0;
601 /* Include these too: MSN_CLIENT_CAP_MSNMOBILE|MSN_CLIENT_CAP_MSNDIRECT ? */ 600 /* Include these too: MSN_CLIENT_CAP_MSNMOBILE|MSN_CLIENT_CAP_MSNDIRECT ? */
602 } 601 }
603 602
604 return ret; 603 return ret;
605 } 604 }
1350 return; 1349 return;
1351 } 1350 }
1352 1351
1353 if (group_id >= 0) 1352 if (group_id >= 0)
1354 { 1353 {
1354 /* This is wrong... user->group_ids contains g_strdup()'d data now */
1355 user->group_ids = g_list_append(user->group_ids, 1355 user->group_ids = g_list_append(user->group_ids,
1356 GINT_TO_POINTER(group_id)); 1356 GINT_TO_POINTER(group_id));
1357 } 1357 }
1358 1358
1359 user->list_op |= (1 << list_id); 1359 user->list_op |= (1 << list_id);