|
|
f82e1aa |
-----------------------------------------------------------------
|
|
|
f82e1aa |
Revision: e3dd36706068f3b8eabd630ff71d270c145cce42
|
|
|
f82e1aa |
Ancestor: 6c2368ad4315c5277c41916c2be642f8aa1894e2
|
|
|
f82e1aa |
Author: markdoliner@pidgin.im
|
|
|
f82e1aa |
Date: 05/20/2010 02:39:25 AM
|
|
|
f82e1aa |
Branch: im.pidgin.pidgin
|
|
|
f82e1aa |
|
|
|
f82e1aa |
Modified files:
|
|
|
f82e1aa |
libpurple/protocols/oscar/family_icbm.c
|
|
|
f82e1aa |
|
|
|
f82e1aa |
ChangeLog:
|
|
|
f82e1aa |
|
|
|
f82e1aa |
If we get an error SNAC on the ICBM family and it's missing buddy name then
|
|
|
f82e1aa |
don't fallthrough to the default error handler in misc.c. This was causing
|
|
|
f82e1aa |
purple_parse_msgerr() in oscar.c to get called with different va_args than
|
|
|
f82e1aa |
it was expecting, which caused a crash. Specifically when trying to fetch
|
|
|
f82e1aa |
the ICQ x-status of an offline buddy.
|
|
|
f82e1aa |
|
|
|
f82e1aa |
Fixes #11863. This is nosnilmot's patch, I believe. I had no part in it,
|
|
|
f82e1aa |
other than verifying that I do believe it'll fix the crash.
|
|
|
f82e1aa |
|
|
|
f82e1aa |
============================================================
|
|
|
f82e1aa |
--- libpurple/protocols/oscar/family_icbm.c fcbebddf7bb56d37e2e89ffa10da1b73e63cf833
|
|
|
f82e1aa |
+++ libpurple/protocols/oscar/family_icbm.c 62126e23e6971a85d9b599c7ca61675a008e6f9b
|
|
|
f82e1aa |
@@ -166,20 +166,20 @@ error(OscarData *od, FlapConnection *con
|
|
|
f82e1aa |
|
|
|
f82e1aa |
if (!(snac2 = aim_remsnac(od, snac->id))) {
|
|
|
f82e1aa |
purple_debug_misc("oscar", "icbm error: received response from unknown request!\n");
|
|
|
f82e1aa |
- return 0;
|
|
|
f82e1aa |
+ return 1;
|
|
|
f82e1aa |
}
|
|
|
f82e1aa |
|
|
|
f82e1aa |
if (snac2->family != SNAC_FAMILY_ICBM) {
|
|
|
f82e1aa |
purple_debug_misc("oscar", "icbm error: received response from invalid request! %d\n", snac2->family);
|
|
|
f82e1aa |
g_free(snac2->data);
|
|
|
f82e1aa |
g_free(snac2);
|
|
|
f82e1aa |
- return 0;
|
|
|
f82e1aa |
+ return 1;
|
|
|
f82e1aa |
}
|
|
|
f82e1aa |
|
|
|
f82e1aa |
if (!(bn = snac2->data)) {
|
|
|
f82e1aa |
purple_debug_misc("oscar", "icbm error: received response from request without a buddy name!\n");
|
|
|
f82e1aa |
g_free(snac2);
|
|
|
f82e1aa |
- return 0;
|
|
|
f82e1aa |
+ return 1;
|
|
|
f82e1aa |
}
|
|
|
f82e1aa |
|
|
|
f82e1aa |
reason = byte_stream_get16(bs);
|