Mercurial > pidgin
changeset 25424:b3dbc9e8b6ef
I had the distinct pleasure of throwing invalid garbage at this code; it
generated many errors like
g_log: xmlnode_get_child_with_namespace: assertion `parent != NULL' failed
Instead, let's handle it nicely...
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sat, 14 Feb 2009 01:18:25 +0000 |
parents | ab07969d298f |
children | 0fa91206cf5a |
files | libpurple/protocols/jabber/useravatar.c |
diffstat | 1 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/useravatar.c Thu Feb 05 01:00:17 2009 +0000 +++ b/libpurple/protocols/jabber/useravatar.c Sat Feb 14 01:18:25 2009 +0000 @@ -236,6 +236,9 @@ server_hash = xmlnode_get_attrib(info, "id"); } + if (!metadata) + return; + ns = xmlnode_get_namespace(metadata); if (!ns) return; @@ -338,8 +341,13 @@ if(!buddy) return; - checksum = purple_buddy_icons_get_checksum_for_user(buddy); + if (!items) + return; + item = xmlnode_get_child(items,"item"); + if (!item) + return; + metadata = xmlnode_get_child(item, "metadata"); if(!metadata) return; @@ -350,6 +358,8 @@ strcmp(ns, NS_AVATAR_1_1_METADATA))) return; + checksum = purple_buddy_icons_get_checksum_for_user(buddy); + /* check if we have received a stop */ if(xmlnode_get_child(metadata, "stop")) { purple_buddy_icons_set_for_user(purple_connection_get_account(js->gc), from, NULL, 0, NULL);