/pidgin/main: 2d76d38118a8: Merge release-2.x.y branch into main...

Mark Doliner mark at kingant.net
Tue Jan 28 10:38:20 EST 2014


Changeset: 2d76d38118a86ca22337599408d87a9ffcc9866a
Author:	 Mark Doliner <mark at kingant.net>
Date:	 2014-01-23 23:38 -0800
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/2d76d38118a8

Description:

Merge release-2.x.y branch into main, with manual merges in
ChangeLog (easy)
Makefile.mingw (easy)
configure.ac (easy)
irc/msgs.c (not too bad)

And some Windows build files. We should make sure the pango used by 3.0.0
doesn't have the crash bug from CVE-2013-6486.

diffstat:

 .hgtags                         |      1 +
 COPYRIGHT                       |      1 +
 ChangeLog                       |     14 +-
 configure.ac                    |      2 +-
 libpurple/protocols/irc/irc.h   |      6 +-
 libpurple/protocols/irc/msgs.c  |     35 +-
 libpurple/protocols/irc/parse.c |      3 +-
 libpurple/tests/test_util.c     |     11 +-
 libpurple/util.c                |      2 +-
 pidgin/gtkdialogs.c             |      1 +
 pidgin/gtknotify.c              |      2 +-
 po/ChangeLog                    |     22 +
 po/POTFILES.in                  |      1 +
 po/POTFILES.skip                |      1 +
 po/ast.po                       |  14484 ++++++++++++++++++++++++++++++++++++++
 po/da.po                        |   6790 ++++++++---------
 po/el.po                        |    256 +-
 po/et.po                        |    797 +-
 po/fa.po                        |   8797 +++++-----------------
 po/ga.po                        |    265 +-
 po/he.po                        |    289 +-
 po/lt.po                        |    250 +-
 po/my_MM.po                     |    245 +-
 po/nl.po                        |    254 +-
 po/nn.po                        |    248 +-
 po/pa.po                        |    243 +-
 po/pl.po                        |    279 +-
 po/pt.po                        |    246 +-
 po/ru.po                        |   1107 +-
 po/sl.po                        |    983 +-
 po/sq.po                        |   3270 +------
 31 files changed, 23453 insertions(+), 15452 deletions(-)

diffs (truncated from 59687 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -87,3 +87,4 @@ 1d00b9e4aa6add6dca97cca4ac614d63bd105dfd
 a3d157700972b48cf0a23b300261a5ab0c6e165b v2.10.5
 4992bd90d8ad78ebdd324dd90d3e9d443f7dd002 v2.10.6
 ad7e7fb98db3bbd7bf9ab49072fd34cd4fa25dd9 v2.10.7
+5010e6877abce3bfc2a4912e6b38fed7d6d3df19 v2.10.8
diff --git a/COPYRIGHT b/COPYRIGHT
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -208,6 +208,7 @@ Ian Goldberg
 Jon Goldberg
 Matthew Goldstein
 Michael Golden
+Issa Gorissen
 Charlie Gordon
 Ryan C. Gordon
 Konrad Gräfe
diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -61,7 +61,7 @@ version 3.0.0 (??/??/????):
 	* Various core components of libpurple are now GObjects.
 	* Ciphers are now built from the libpurple directory.
 
-version 2.10.8:
+version 2.10.8 (1/28/2014):
 	General:
 	* Python build scripts and example plugins are now compatible with
 	  Python 3. (Ashish Gupta) (#15624)
@@ -97,6 +97,8 @@ version 2.10.8:
 	* Fix crash-on-startup when ASLR is always on. (#15521)
 	* Updates to dependencies:
 		* NSS 3.15.4 and NSPR 4.10.2
+		* Pango 1.29.4-1daa
+			Patched for https://bugzilla.gnome.org/show_bug.cgi?id=668154
 
 	AIM:
 	* Fix untrusted certificate error.
@@ -140,7 +142,7 @@ version 2.10.8:
 	MXit:
 	* Fix buffer overflow with remote code execution potential.
 	  (Discovered by Yves Younan and Pawel Janic of Sourcefire VRT)
-	  (CVE-2013-6487)
+	  (CVE-2013-6489)
 	* Fix sporadic crashes that can happen after user is disconnected.
 	* Fix crash when attempting to add a contact via search results.
 	* Show error message if file transfer fails.
@@ -152,13 +154,13 @@ version 2.10.8:
 
 	SIMPLE:
 	* Fix buffer overflow with remote code execution potential.
-	  (Discovered by Yves Younan of Sourcefire VRT) (CVE-2013-6487)
+	  (Discovered by Yves Younan of Sourcefire VRT) (CVE-2013-6490)
 
 	XMPP:
 	* Prevent spoofing of iq replies by verifying that the 'from' address
 	  matches the 'to' address of the iq request. (Discovered by Fabian
-	  Yamaguchi and Christian Wressnegger of the University of Goettingen)
-	  (CVE-2013-6483)
+	  Yamaguchi and Christian Wressnegger of the University of Goettingen,
+	  fixed by Thijs Alkemade) (CVE-2013-6483)
 	* Fix crash on some systems when receiving fake delay timestamps with
 	  extreme values. (Discovered by Jaime Breva Ribes) (CVE-2013-6477)
 	* Fix possible crash or other erratic behavior when selecting a very
@@ -169,7 +171,7 @@ version 2.10.8:
 	  a subsequent mechanism would otherwise work when using Cyrus SASL.
 	  (#15524)
 	* Fix dropping incoming stanzas on BOSH connections when we receive
-	  multiple HTTP responses at once. (#15684)
+	  multiple HTTP responses at once. (Issa Gorissen) (#15684)
 
 	Yahoo!:
 	* Fix possible crashes handling incoming strings that are not UTF-8.
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -305,7 +305,7 @@ if test x$enable_i18n = xyes; then
 	GETTEXT_PACKAGE=pidgin
 	AC_SUBST(GETTEXT_PACKAGE)
 
-	ALL_LINGUAS="af am ar az be at latin bg bn bn_IN bs ca ca at valencia cs da de dz el en_AU en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu hy id it ja ka km kn ko ku lo lt mai mhr mk mn mr ms_MY my_MM nb ne nl nn oc or pa pl pt_BR pt ps ro ru si sk sl sq sr sr at latin sv sw ta te th tr uk ur vi xh zh_CN zh_HK zh_TW"
+	ALL_LINGUAS="af am ar ast az be at latin bg bn bn_IN bs ca ca at valencia cs da de dz el en_AU en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu hy id it ja ka km kn ko ku lo lt mai mhr mk mn mr ms_MY my_MM nb ne nl nn oc or pa pl pt_BR pt ps ro ru si sk sl sq sr sr at latin sv sw ta te th tr uk ur vi xh zh_CN zh_HK zh_TW"
 	AM_GLIB_GNU_GETTEXT
 
 	dnl If we don't have msgfmt, then po/ is going to fail -- ensure that
diff --git a/libpurple/protocols/irc/irc.h b/libpurple/protocols/irc/irc.h
--- a/libpurple/protocols/irc/irc.h
+++ b/libpurple/protocols/irc/irc.h
@@ -73,9 +73,11 @@ struct irc_conn {
 	GString *names;
 	struct _whois {
 		char *nick;
+		char *real;
+		char *login;
+		char *ident;
+		char *host;
 		char *away;
-		char *userhost;
-		char *name;
 		char *server;
 		char *serverinfo;
 		GString *channels;
diff --git a/libpurple/protocols/irc/msgs.c b/libpurple/protocols/irc/msgs.c
--- a/libpurple/protocols/irc/msgs.c
+++ b/libpurple/protocols/irc/msgs.c
@@ -269,7 +269,6 @@ void irc_msg_ban(struct irc_conn *irc, c
 	if (!strcmp(name, "367")) {
 		char *msg = NULL;
 		/* Ban list entry */
-		g_return_if_fail(args[2]);
 		if (args[3] && args[4]) {
 			/* This is an extended syntax, not in RFC 1459 */
 			int t1 = atoi(args[4]);
@@ -366,8 +365,9 @@ void irc_msg_whois(struct irc_conn *irc,
 	if (!strcmp(name, "301")) {
 		irc->whois.away = g_strdup(args[2]);
 	} else if (!strcmp(name, "311") || !strcmp(name, "314")) {
-		irc->whois.userhost = g_strdup_printf("%s@%s", args[2], args[3]);
-		irc->whois.name = g_strdup(args[5]);
+		irc->whois.ident = g_strdup(args[2]);
+		irc->whois.host = g_strdup(args[3]);
+		irc->whois.real = g_strdup(args[5]);
 	} else if (!strcmp(name, "312")) {
 		irc->whois.server = g_strdup(args[2]);
 		irc->whois.serverinfo = g_strdup(args[3]);
@@ -385,6 +385,11 @@ void irc_msg_whois(struct irc_conn *irc,
 		}
 	} else if (!strcmp(name, "320")) {
 		irc->whois.identified = 1;
+	} else if (!strcmp(name, "330")) {
+		purple_debug(PURPLE_DEBUG_INFO, "irc", "330 %s: 1=[%s] 2=[%s] 3=[%s]",
+				name, args[1], args[2], args[3]);
+		if (!strcmp(args[3], "is logged in as"))
+			irc->whois.login = g_strdup(args[2]);
 	}
 }
 
@@ -419,11 +424,21 @@ void irc_msg_endwhois(struct irc_conn *i
 		purple_notify_user_info_add_pair_plaintext(user_info, _("Away"), irc->whois.away);
 		g_free(irc->whois.away);
 	}
-	if (irc->whois.userhost) {
-		purple_notify_user_info_add_pair_plaintext(user_info, _("Username"), irc->whois.userhost);
-		purple_notify_user_info_add_pair_plaintext(user_info, _("Real name"), irc->whois.name);
-		g_free(irc->whois.userhost);
-		g_free(irc->whois.name);
+	if (irc->whois.real) {
+		purple_notify_user_info_add_pair_plaintext(user_info, _("Real name"), irc->whois.real);
+		g_free(irc->whois.real);
+	}
+	if (irc->whois.login) {
+		purple_notify_user_info_add_pair_plaintext(user_info, _("Login name"), irc->whois.login);
+		g_free(irc->whois.login);
+	}
+	if (irc->whois.ident) {
+		purple_notify_user_info_add_pair_plaintext(user_info, _("Ident name"), irc->whois.ident);
+		g_free(irc->whois.ident);
+	}
+	if (irc->whois.host) {
+		purple_notify_user_info_add_pair_plaintext(user_info, _("Host name"), irc->whois.host);
+		g_free(irc->whois.host);
 	}
 	if (irc->whois.server) {
 		tmp = g_strdup_printf("%s (%s)", irc->whois.server, irc->whois.serverinfo);
@@ -550,13 +565,9 @@ void irc_msg_topic(struct irc_conn *irc,
 	PurpleChatConversation *chat;
 
 	if (!strcmp(name, "topic")) {
-		g_return_if_fail(args[0]);
-		g_return_if_fail(args[1]);
 		chan = args[0];
 		topic = irc_mirc2txt (args[1]);
 	} else {
-		g_return_if_fail(args[1]);
-		g_return_if_fail(args[2]);
 		chan = args[1];
 		topic = irc_mirc2txt (args[2]);
 	}
diff --git a/libpurple/protocols/irc/parse.c b/libpurple/protocols/irc/parse.c
--- a/libpurple/protocols/irc/parse.c
+++ b/libpurple/protocols/irc/parse.c
@@ -65,10 +65,11 @@ static struct _irc_msg {
 	{ "311", "nnvvv:", 6, irc_msg_whois },		/* Whois user			*/
 	{ "312", "nnv:", 4, irc_msg_whois },		/* Whois server			*/
 	{ "313", "nn:", 2, irc_msg_whois },		/* Whois ircop			*/
-	{ "317", "nnvv", 4, irc_msg_whois },		/* Whois idle			*/
+	{ "317", "nnvv", 3, irc_msg_whois },		/* Whois idle			*/
 	{ "318", "nt:", 2, irc_msg_endwhois },		/* End of WHOIS			*/
 	{ "319", "nn:", 3, irc_msg_whois },		/* Whois channels		*/
 	{ "320", "nn:", 2, irc_msg_whois },		/* Whois (fn ident)		*/
+	{ "330", "nnv:", 4, irc_msg_whois },		/* Whois (fn login)		*/
 	{ "314", "nnnvv:", 6, irc_msg_whois },		/* Whowas user			*/
 	{ "315", "nt:", 0, irc_msg_who },		/* end of WHO channel		*/
 	{ "369", "nt:", 2, irc_msg_endwhois },		/* End of WHOWAS		*/
diff --git a/libpurple/tests/test_util.c b/libpurple/tests/test_util.c
--- a/libpurple/tests/test_util.c
+++ b/libpurple/tests/test_util.c
@@ -156,10 +156,19 @@ END_TEST
 
 START_TEST(test_util_str_to_time)
 {
+	struct tm tm;
+	long tz_off;
+	const char *rest;
+	time_t timestamp;
+
 	fail_unless(377182200 == purple_str_to_time("19811214T12:50:00", TRUE, NULL, NULL, NULL));
 	fail_unless(1175919261 == purple_str_to_time("20070407T04:14:21", TRUE, NULL, NULL, NULL));
 	fail_unless(1282941722 == purple_str_to_time("2010-08-27.204202", TRUE, NULL, NULL, NULL));
-	fail_unless(1282941722 == purple_str_to_time("2010-08-27.134202-0700PDT", FALSE, NULL, NULL, NULL));
+
+	timestamp = purple_str_to_time("2010-08-27.134202-0700PDT", FALSE, &tm, &tz_off, &rest);
+	fail_unless(1282941722 == timestamp);
+	fail_unless((-7 * 60 * 60) == tz_off);
+	assert_string_equal("PDT", rest);
 }
 END_TEST
 
diff --git a/libpurple/util.c b/libpurple/util.c
--- a/libpurple/util.c
+++ b/libpurple/util.c
@@ -911,7 +911,7 @@ purple_str_to_time(const char *timestamp
 		*tm = t;
 
 	if (tzoff != PURPLE_NO_TZ_OFF)
-		retval += tzoff;
+		retval -= tzoff;
 
 	if (tz_off != NULL)
 		*tz_off = tzoff;
diff --git a/pidgin/gtkdialogs.c b/pidgin/gtkdialogs.c
--- a/pidgin/gtkdialogs.c
+++ b/pidgin/gtkdialogs.c
@@ -158,6 +158,7 @@ static const struct translator translato
 	{NULL,                      NULL, "Friedel Wolff", "friedel at translate.org.za"},
 	{N_("Arabic"),              "ar", "Khaled Hosny", "khaledhosny at eglug.org"},
 	{N_("Assamese"),            "as", "Amitakhya Phukan", "aphukan at fedoraproject.org"},
+	{N_("Asturian"),            "ast", "Llumex03", "l.lumex03.tornes at gmail.com"},
 	{N_("Belarusian Latin"),    "be at latin", "Ihar Hrachyshka", "ihar.hrachyshka at gmail.com"},
 	{N_("Bulgarian"),           "bg", "Vladimira Girginova", "missing at here.is"},
 	{NULL,                      NULL, "Vladimir (Kaladan) Petkov", "kaladan at gmail.com"},
diff --git a/pidgin/gtknotify.c b/pidgin/gtknotify.c
--- a/pidgin/gtknotify.c
+++ b/pidgin/gtknotify.c
@@ -1521,7 +1521,7 @@ pidgin_notify_uri(const char *uri)
 	g_slist_free(argv_remote);
 
 #else /* !_WIN32 */
-	winpidgin_notify_uri(uri_escaped);
+	winpidgin_notify_uri(uri);
 #endif /* !_WIN32 */
 
 	return NULL;
diff --git a/po/ChangeLog b/po/ChangeLog
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,7 +1,29 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
 version 2.10.8
+	* Albanian translation updated (Besnik Bleta)
+	* Asturian translation added (Llumex03)
+	* Burmese translation updated (Yhal Htet Aung, Thura Hlaing)
+	* Danish translation updated (Nicky Thomassen)
+	* Dutch translation updated (Gideon van Melle)
+	* Estonian translation updated (boamaod, Mattias Põldaru, Ivar Smolin,
+	  Werewolf)
 	* German translation updated (Björn Voigt, Jochen Kemnade)
+	* Greek translation updated (Panos Bouklis)
+	* Hebrew translation updated (Shalom Craimer)
+	* Irish translation updated (Aaron Kearns, Kevin Scannell)
+	* Lithuanian translation updated (Algimantas Margevičius)
+	* Norwegian Nynorsk translation updated (Alexander Mackinnon Jansen,
+	  Yngve Spjeld Landro)
+	* Persian translation updated (Mahdi Heidari, Mohammad Hossein Mojtahedi,
+	  Elnaz Sarbar, Hossein Sn)
+	  Pournader)
+	* Polish translation updated (Piotr DrÄ
g)
+	* Portuguese translation updated (Marta Leocádio, Paulo Ribeiro,
+	  Gonçalo Silva)
+	* Punjabi translation updated (Amanpreet Singh Alam)
+	* Russian translation updated (Антон СамоÑ
валов)
+	* Slovenian translation updated (Martin Srebotnjak)
 
 version 2.10.7
 	* Burmese translation updated (Thura Hlaing)
diff --git a/po/POTFILES.in b/po/POTFILES.in
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -271,5 +271,6 @@ pidgin/plugins/ticker/ticker.c
 pidgin/plugins/webkit.c
 pidgin/plugins/win32/transparency/win2ktrans.c
 pidgin/plugins/win32/winprefs/winprefs.c
+pidgin/plugins/unity.c
 pidgin/plugins/xmppconsole.c
 pidgin/win32/nsis/nsis_translations.desktop.in
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
--- a/po/POTFILES.skip



More information about the Commits mailing list