pidgin: 292ad961: yahoo: Don't do anything in yahoo_status...

darkrain42 at pidgin.im darkrain42 at pidgin.im
Wed Jul 8 13:05:36 EDT 2009


-----------------------------------------------------------------
Revision: 292ad961a7d320b8c8e875a3ce990e68dd3d1f49
Ancestor: 561a0cd5c9ec8e05c85303e72e406b03240527ed
Author: darkrain42 at pidgin.im
Date: 2009-07-08T17:02:07
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/292ad961a7d320b8c8e875a3ce990e68dd3d1f49

Modified files:
        libpurple/protocols/yahoo/libymsg.c

ChangeLog: 

yahoo: Don't do anything in yahoo_status_text when disconnecting.

prpl->status_text is called via a signed-off signal callback in
gtkconv.c, at which point gc != NULL, but gc->proto_data == NULL. That
was triggering an assertion in yahoo_friend_find.

-------------- next part --------------
============================================================
--- libpurple/protocols/yahoo/libymsg.c	9182115b07953da067feec10752961a03e67012a
+++ libpurple/protocols/yahoo/libymsg.c	31690267f43b0e6ad907781dd92379bf2f6eca70
@@ -3686,9 +3686,14 @@ char *yahoo_status_text(PurpleBuddy *b)
 	const char *msg;
 	char *msg2;
 	PurpleAccount *account;
+	PurpleConnection *gc;
 
 	account = purple_buddy_get_account(b);
-	f = yahoo_friend_find(purple_account_get_connection(account), purple_buddy_get_name(b));
+	gc = purple_account_get_connection(account);
+	if (!gc || !purple_connection_get_protocol_data(gc))
+		return NULL;
+
+	f = yahoo_friend_find(gc, purple_buddy_get_name(b));
 	if (!f)
 		return g_strdup(_("Not on server list"));
 


More information about the Commits mailing list