Mercurial > pidgin
diff libpurple/protocols/bonjour/jabber.c @ 23018:ef0bcbe33689
applied changes from 3d595739f53a259d5dae408a05f64d2836f02ac9
through 05cdb341d2bf5165ab95cc42e52750624f0a7ad9
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Thu, 19 Jun 2008 02:56:37 +0000 |
parents | 1c87e81c44fa |
children | a9db0aec7e59 |
line wrap: on
line diff
--- a/libpurple/protocols/bonjour/jabber.c Thu Jun 19 02:55:44 2008 +0000 +++ b/libpurple/protocols/bonjour/jabber.c Thu Jun 19 02:56:37 2008 +0000 @@ -385,7 +385,7 @@ purple_debug_warning("bonjour", "receive error: %s\n", err ? err : "(null)"); bonjour_jabber_close_conversation(bconv); - if (bconv->pb != NULL) { + if (bconv->pb != NULL && bconv->pb->proto_data != NULL) { BonjourBuddy *bb = bconv->pb->proto_data; bb->conversation = NULL; } @@ -957,7 +957,7 @@ int ret; pb = _find_or_start_conversation(jdata, to); - if (pb == NULL) { + if (pb == NULL || pb->proto_data == NULL) { purple_debug_info("bonjour", "Can't send a message to an offline buddy (%s).\n", to); /* You can not send a message to an offline buddy */ return -10000; @@ -1103,8 +1103,10 @@ buddies = purple_find_buddies(jdata->account, NULL); for (l = buddies; l; l = l->next) { BonjourBuddy *bb = ((PurpleBuddy*) l->data)->proto_data; - bonjour_jabber_close_conversation(bb->conversation); - bb->conversation = NULL; + if (bb != NULL) { + bonjour_jabber_close_conversation(bb->conversation); + bb->conversation = NULL; + } } g_slist_free(buddies);