Mercurial > hg
changeset 1917:33d1c42cf07e
Ignore malformed caps packets
Sometimes buggy caps data have no "ver" attribute (reported by Hermitifier).
This is invalid valid, so let's ignore it.
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Tue, 09 Nov 2010 11:10:26 +0100 |
parents | a87ac75872fe |
children | 0fa6df17bc5c |
files | mcabber/mcabber/xmpp.c |
diffstat | 1 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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; }