pidgin.2.x.y: 3315c5df: applied changes from 444dec0882a99509448...

qulogic at pidgin.im qulogic at pidgin.im
Fri Jun 1 23:06:58 EDT 2012


----------------------------------------------------------------------
Revision: 3315c5dfbd0ad16511bdcf865e5b07c02d07df24
Parent:   75185d4ec092b5720727dbdb482e51ae92e63a2e
Author:   qulogic at pidgin.im
Date:     06/01/12 22:30:13
Branch:   im.pidgin.pidgin.2.x.y
URL: http://d.pidgin.im/viewmtn/revision/info/3315c5dfbd0ad16511bdcf865e5b07c02d07df24

Changelog: 

applied changes from 444dec0882a9950944852a408a50904a458629bf
             through 1f233991b11d30d7bd9d1e058e19fe162a9600f3

Apparently, some random servers have decided to send us an annotation
with no name, and the value isn't really self-describing either. Anyway,
this empty name could cause a crash.

Fixes #15126.

Changes against parent 75185d4ec092b5720727dbdb482e51ae92e63a2e

  patched  libpurple/protocols/msn/contact.c

-------------- next part --------------
============================================================
--- libpurple/protocols/msn/contact.c	d37e996d9ddfa2d77c62a7099cd94c5ef5acb2a2
+++ libpurple/protocols/msn/contact.c	0f68d7b6bd640ca366cdec6b034d520c7390d14b
@@ -726,7 +726,7 @@ msn_parse_addressbook_contacts(MsnSessio
 				char *name, *value;
 				name = xmlnode_get_data(xmlnode_get_child(annotation, "Name"));
 				value = xmlnode_get_data(xmlnode_get_child(annotation, "Value"));
-				if (!strcmp(name, "MSN.IM.MPOP")) {
+				if (name && g_str_equal(name, "MSN.IM.MPOP")) {
 					if (!value || atoi(value) != 0)
 						session->enable_mpop = TRUE;
 					else
@@ -802,9 +802,12 @@ msn_parse_addressbook_contacts(MsnSessio
 			Name = g_strdup(passport);
 
 		for (annotation = xmlnode_get_child(contactInfo, "annotations/Annotation");
-				annotation; annotation = xmlnode_get_next_twin(annotation)) {
+		     annotation;
+		     annotation = xmlnode_get_next_twin(annotation)) {
 			char *name;
 			name = xmlnode_get_data(xmlnode_get_child(annotation, "Name"));
+			if (!name)
+				continue;
 			if (!strcmp(name, "AB.NickName"))
 				alias = xmlnode_get_data(xmlnode_get_child(annotation, "Value"));
 			else if (!strcmp(name, "MSN.IM.HasSharedFolder"))


More information about the Commits mailing list