----------------------------------------------------------------- Revision: e3dd36706068f3b8eabd630ff71d270c145cce42 Ancestor: 6c2368ad4315c5277c41916c2be642f8aa1894e2 Author: markdoliner@pidgin.im Date: 05/20/2010 02:39:25 AM Branch: im.pidgin.pidgin 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. ============================================================ --- 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);