changeset 25339:08a2a4029f20

Fix a segfault when deleting an account without an associated prpl. Reported by adi1 in #pidgin. Fixes #8180.
author Paul Aurich <paul@darkrain42.org>
date Tue, 20 Jan 2009 02:33:43 +0000
parents 5e77f8512f5b
children 0e50e4e7aef7 e096b6226517
files ChangeLog libpurple/blist.c
diffstat 2 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Jan 19 01:05:27 2009 +0000
+++ b/ChangeLog	Tue Jan 20 02:33:43 2009 +0000
@@ -1,6 +1,9 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
 version 2.5.5 (??/??/????):
+	libpurple:
+	* Fix a crash when removing an account with an unknown protocol id.
+
 	Finch:
 	* Allow rebinding keys to change the focused widget (details in the
 	  man-page, look for GntBox::binding)
--- a/libpurple/blist.c	Mon Jan 19 01:05:27 2009 +0000
+++ b/libpurple/blist.c	Tue Jan 20 02:33:43 2009 +0000
@@ -1811,7 +1811,7 @@
 	PurpleGroup *group;
 	struct _purple_hbuddy hb;
 	PurplePlugin *prpl;
-	PurplePluginProtocolInfo *prpl_info;
+	PurplePluginProtocolInfo *prpl_info = NULL;
 
 	g_return_if_fail(buddy != NULL);
 
@@ -1872,7 +1872,8 @@
 	 * can free proto_data
 	 */
 	prpl = purple_find_prpl(purple_account_get_protocol_id(buddy->account));
-	prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
+	if (prpl)
+		prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl);
 	if (prpl_info && prpl_info->buddy_free)
 		prpl_info->buddy_free(buddy);