# HG changeset patch
# User Mark Doliner <mark@kingant.net>
# Date 1274319565 0
# Node ID 6d96bfe048bc0b6ece426ecdae27e7ea8623588c
# Parent  7ba6fc1762dc16cbc4fe41dcf35f7a940721f79a
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.

diff -r 7ba6fc1762dc -r 6d96bfe048bc libpurple/protocols/oscar/family_icbm.c
--- a/libpurple/protocols/oscar/family_icbm.c	Thu May 20 01:27:23 2010 +0000
+++ b/libpurple/protocols/oscar/family_icbm.c	Thu May 20 01:39:25 2010 +0000
@@ -166,20 +166,20 @@
 
 	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);