comparison libpurple/protocols/jabber/presence.c @ 26924:33f98d662db8

Don't crash when resource is NULL. Thanks, Marcus! #0 0x00007ffe6d203a92 in strcmp () from /lib/libc.so.6 #1 0x00007ffe5c588406 in jabber_buddy_find_resource ( jb=<value optimized out>, resource=0x1 <Address 0x1 out of bounds>) at buddy.c:143 #2 0x00007ffe5c5a7303 in jabber_presence_set_capabilities (info=0x0, exts=0x0, userdata=0x11da700) at presence.c:410
author Paul Aurich <paul@darkrain42.org>
date Thu, 07 May 2009 17:04:59 +0000
parents 0c1983abe991
children d0a049ede31e
comparison
equal deleted inserted replaced
26923:b0f61cb90f62 26924:33f98d662db8
402 static void 402 static void
403 jabber_presence_set_capabilities(JabberCapsClientInfo *info, GList *exts, 403 jabber_presence_set_capabilities(JabberCapsClientInfo *info, GList *exts,
404 JabberPresenceCapabilities *userdata) 404 JabberPresenceCapabilities *userdata)
405 { 405 {
406 JabberBuddyResource *jbr; 406 JabberBuddyResource *jbr;
407 char *resource = g_utf8_strrchr(userdata->from, -1, '/'); 407 char *resource = g_utf8_strchr(userdata->from, -1, '/');
408 resource += 1; 408
409 if (resource)
410 resource += 1;
409 411
410 jbr = jabber_buddy_find_resource(userdata->jb, resource); 412 jbr = jabber_buddy_find_resource(userdata->jb, resource);
411 if (!jbr) { 413 if (!jbr) {
412 g_free(userdata->from); 414 g_free(userdata->from);
413 g_free(userdata); 415 g_free(userdata);