# HG changeset patch # User Sadrul Habib Chowdhury # Date 1246146552 0 # Node ID 478e0b09173127b7199bb9f6409ac580bec51e96 # Parent c29a3fac60327a95702a4b310275d769e23f4751# Parent 2eee06628764e595723273dbd788d65983b1e871 merge of 'c3ed9a8c89dd38d30b7ad93055507b679b2f0f76' and 'ef660d19c58b200a67bf94b3e8cbf0fd562a7f1d' diff -r c29a3fac6032 -r 478e0b091731 ChangeLog --- a/ChangeLog Sat Jun 27 23:38:53 2009 +0000 +++ b/ChangeLog Sat Jun 27 23:49:12 2009 +0000 @@ -121,6 +121,33 @@ * Preferences have been reorganized into three tabs for Colors, Fonts, and Miscellaneous categories. +version 2.5.8 (06/27/2009): + ICQ: + * Fix misparsing a web message as an SMS message. (Yuriy Kaminskiy) + + MSN: + * Increase NS command history size to prevent crashes on buddy lists that + have a lot of buddies on other networks like Yahoo!. + + MySpace: + * Accounts with empty buddy lists are now properly marked as connected. + * Fix receiving messages from users of MySpace IM's web client. + + Yahoo: + * Fixed phantom online buddies. They should now properly disappear when + signing out. + * Fixed the crashes some users were seeing with cn.scs.msg.yahoo.com in + 2.5.7. + * Fixed compiling on systems with glib 2.4.x or older. + * Fixed an issue with file transfers. This may not resolve all issues, + but it should resolve at least some of the most common ones. + * The pager server will automatically update to scsa.msg.yahoo.com if the + user empties the field or if it is scs.msg.yahoo.com. This should ease + the pain of transition to the new login method. + + XMPP: + * Fix an incompatibility betweeen Prosody and libpurple clients. + version 2.5.7 (06/20/2009): * Yahoo Protocol 16 support, including new HTTPS login method; this should fix a number of login problems that have recently cropped up. (Sulabh diff -r c29a3fac6032 -r 478e0b091731 ChangeLog.API --- a/ChangeLog.API Sat Jun 27 23:38:53 2009 +0000 +++ b/ChangeLog.API Sat Jun 27 23:49:12 2009 +0000 @@ -128,6 +128,9 @@ * Purple::Request::Field::string_new * Purple::Request::Field::group_new +version 2.5.8 (06/27/2009): + No changes + version 2.5.7 (06/20/2009): No changes diff -r c29a3fac6032 -r 478e0b091731 ChangeLog.win32 --- a/ChangeLog.win32 Sat Jun 27 23:38:53 2009 +0000 +++ b/ChangeLog.win32 Sat Jun 27 23:49:12 2009 +0000 @@ -1,5 +1,8 @@ version 2.6.0 (??/??/2009): +version 2.5.8 (06/27/2009): + * No changes + version 2.5.7 (06/20/2009): * No changes diff -r c29a3fac6032 -r 478e0b091731 NEWS --- a/NEWS Sat Jun 27 23:38:53 2009 +0000 +++ b/NEWS Sat Jun 27 23:49:12 2009 +0000 @@ -2,6 +2,12 @@ Our development blog is available at: http://planet.pidgin.im +2.5.8 (06/27/2009): + John: This release is another somewhat rushed bugfix release to fix + a number of bugs that have come up since we released Pidgin 2.5.7. + Hopefully anything I broke there is fixed now, or at least made to be + less broken. Enjoy! + 2.5.7 (06/20/2009): John: This release is really just a rushed fix for the broken Yahoo protocol plugin. I spent way more time on this release than I care diff -r c29a3fac6032 -r 478e0b091731 libpurple/protocols/jabber/buddy.c --- a/libpurple/protocols/jabber/buddy.c Sat Jun 27 23:38:53 2009 +0000 +++ b/libpurple/protocols/jabber/buddy.c Sat Jun 27 23:49:12 2009 +0000 @@ -1102,8 +1102,12 @@ char *txt, *vcard_hash = NULL; if (type == JABBER_IQ_ERROR) { - purple_debug_warning("jabber", "Server returned error while retrieving vCard"); - return; + xmlnode *error; + purple_debug_warning("jabber", "Server returned error while retrieving vCard\n"); + + error = xmlnode_get_child(packet, "error"); + if (!error || !xmlnode_get_child(error, "item-not-found")) + return; } if((vcard = xmlnode_get_child(packet, "vCard")) || diff -r c29a3fac6032 -r 478e0b091731 libpurple/protocols/jabber/ping.c --- a/libpurple/protocols/jabber/ping.c Sat Jun 27 23:38:53 2009 +0000 +++ b/libpurple/protocols/jabber/ping.c Sat Jun 27 23:49:12 2009 +0000 @@ -33,11 +33,9 @@ xmlnode *packet, gpointer data) { if (js->keepalive_timeout != 0) { - purple_debug_misc("jabber", "Keepalive PONG\n"); purple_timeout_remove(js->keepalive_timeout); js->keepalive_timeout = 0; - } else - purple_debug_warning("jabber", "Keepalive PONG with no outstanding timeout!\n"); + } } void diff -r c29a3fac6032 -r 478e0b091731 libpurple/protocols/oscar/bstream.c --- a/libpurple/protocols/oscar/bstream.c Sat Jun 27 23:38:53 2009 +0000 +++ b/libpurple/protocols/oscar/bstream.c Sat Jun 27 23:49:12 2009 +0000 @@ -161,15 +161,19 @@ return aimutil_getle32(bs->data + bs->offset - 4); } +static void byte_stream_getrawbuf_nocheck(ByteStream *bs, guint8 *buf, int len) +{ + memcpy(buf, bs->data + bs->offset, len); + bs->offset += len; +} + int byte_stream_getrawbuf(ByteStream *bs, guint8 *buf, int len) { if (byte_stream_empty(bs) < len) return 0; - memcpy(buf, bs->data + bs->offset, len); - bs->offset += len; - + byte_stream_getrawbuf_nocheck(bs, buf, len); return len; } @@ -177,12 +181,12 @@ { guint8 *ob; + if (byte_stream_empty(bs) < len) + return NULL; + ob = g_malloc(len); - if (byte_stream_getrawbuf(bs, ob, len) < len) { - g_free(ob); - return NULL; - } + byte_stream_getrawbuf_nocheck(bs, ob, len); return ob; } @@ -191,12 +195,12 @@ { char *ob; + if (byte_stream_empty(bs) < len) + return NULL; + ob = g_malloc(len + 1); - if (byte_stream_getrawbuf(bs, (guint8 *)ob, len) < len) { - g_free(ob); - return NULL; - } + byte_stream_getrawbuf_nocheck(bs, (guint8 *)ob, len); ob[len] = '\0'; diff -r c29a3fac6032 -r 478e0b091731 libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Sat Jun 27 23:38:53 2009 +0000 +++ b/libpurple/protocols/oscar/oscar.c Sat Jun 27 23:49:12 2009 +0000 @@ -2905,9 +2905,15 @@ /* From libicq2000-0.3.2/src/ICQ.cpp */ byte_stream_init(&qbs, (guint8 *)args->msg, args->msglen); byte_stream_advance(&qbs, 21); + /* expected: 01 00 00 20 00 0e 28 f6 00 11 e7 d3 11 bc f3 00 04 ac 96 9d c2 | 00 00 | 06 00 00 00 | 49 43 51 53 43 53 ...*/ + /* unexpected: 00 00 26 00 81 1a 18 bc 0e 6c 18 47 a5 91 6f 18 dc c7 6f 1a | 00 00 | 0d 00 00 00 | 49 43 51 57 65 62 4d 65 73 73 61 67 65 ... */ smstype = byte_stream_getle16(&qbs); + if (smstype != 0) + break; taglen = byte_stream_getle32(&qbs); tagstr = byte_stream_getstr(&qbs, taglen); + if (tagstr == NULL) + break; byte_stream_advance(&qbs, 3); byte_stream_advance(&qbs, 4); smslen = byte_stream_getle32(&qbs); diff -r c29a3fac6032 -r 478e0b091731 po/ChangeLog --- a/po/ChangeLog Sat Jun 27 23:38:53 2009 +0000 +++ b/po/ChangeLog Sat Jun 27 23:49:12 2009 +0000 @@ -6,6 +6,12 @@ * Slovenian translation updated (Martin Srebotnjak) * Swahili translation added (Paul Msegeya) +version 2.5.8 + * No changes + +version 2.5.7 + * No changes + version 2.5.6 * German translation updated (Björn Vogt)