changeset 27280:478e0b091731

merge of 'c3ed9a8c89dd38d30b7ad93055507b679b2f0f76' and 'ef660d19c58b200a67bf94b3e8cbf0fd562a7f1d'
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sat, 27 Jun 2009 23:49:12 +0000
parents c29a3fac6032 (current diff) 2eee06628764 (diff)
children 67c992cc4b3c
files po/ChangeLog
diffstat 9 files changed, 73 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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
 
--- 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
 
--- 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
--- 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")) ||
--- 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
--- 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';
 
--- 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);
--- 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)