# HG changeset patch # User Mikael Berthe # Date 1289297426 -3600 # Node ID 33d1c42cf07ea76e6cbcf3f9e51b53ae8a3db364 # Parent a87ac75872feee5c8fd02b12cf57e5bc25e59b30 Ignore malformed caps packets Sometimes buggy caps data have no "ver" attribute (reported by Hermitifier). This is invalid valid, so let's ignore it. diff -r a87ac75872fe -r 33d1c42cf07e mcabber/mcabber/xmpp.c --- a/mcabber/mcabber/xmpp.c Tue Nov 09 11:00:41 2010 +0100 +++ b/mcabber/mcabber/xmpp.c Tue Nov 09 11:10:26 2010 +0100 @@ -1442,6 +1442,12 @@ if (caps && ust != offline) { const char *ver = lm_message_node_get_attribute(caps, "ver"); GSList *sl_buddy = NULL; + + if (!ver) { + scr_LogPrint(LPRINT_LOGNORM, "Error: malformed caps version (%s)", bjid); + goto handle_presence_return; + } + if (rname) sl_buddy = roster_find(bjid, jidsearch, ROSTER_TYPE_USER); // Only cache the caps if the user is on the roster @@ -1470,6 +1476,7 @@ } } +handle_presence_return: g_free(bjid); return LM_HANDLER_RESULT_REMOVE_MESSAGE; }