pidgin: e3dd3670: If we get an error SNAC on the ICBM fami...

markdoliner at pidgin.im markdoliner at pidgin.im
Wed May 19 21:45:33 EDT 2010


-----------------------------------------------------------------
Revision: e3dd36706068f3b8eabd630ff71d270c145cce42
Ancestor: 6c2368ad4315c5277c41916c2be642f8aa1894e2
Author: markdoliner at pidgin.im
Date: 2010-05-20T01:39:25
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/e3dd36706068f3b8eabd630ff71d270c145cce42

Modified files:
        libpurple/protocols/oscar/family_icbm.c

ChangeLog: 

If we get an error SNAC on the ICBM family and it's missing buddy name then
don't fallthrough to the default error handler in misc.c.  This was causing
purple_parse_msgerr() in oscar.c to get called with different va_args than
it was expecting, which caused a crash.  Specifically when trying to fetch
the ICQ x-status of an offline buddy.

Fixes #11863.  This is nosnilmot's patch, I believe.  I had no part in it,
other than verifying that I do believe it'll fix the crash.

-------------- next part --------------
============================================================
--- libpurple/protocols/oscar/family_icbm.c	fcbebddf7bb56d37e2e89ffa10da1b73e63cf833
+++ libpurple/protocols/oscar/family_icbm.c	62126e23e6971a85d9b599c7ca61675a008e6f9b
@@ -166,20 +166,20 @@ error(OscarData *od, FlapConnection *con
 
 	if (!(snac2 = aim_remsnac(od, snac->id))) {
 		purple_debug_misc("oscar", "icbm error: received response from unknown request!\n");
-		return 0;
+		return 1;
 	}
 
 	if (snac2->family != SNAC_FAMILY_ICBM) {
 		purple_debug_misc("oscar", "icbm error: received response from invalid request! %d\n", snac2->family);
 		g_free(snac2->data);
 		g_free(snac2);
-		return 0;
+		return 1;
 	}
 
 	if (!(bn = snac2->data)) {
 		purple_debug_misc("oscar", "icbm error: received response from request without a buddy name!\n");
 		g_free(snac2);
-		return 0;
+		return 1;
 	}
 
 	reason = byte_stream_get16(bs);


More information about the Commits mailing list