diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2009-06-03 17:10:36 +0100 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2009-06-03 17:10:36 +0100 |
commit | 19176513584bf26fa69a8a946982d9c521038a17 (patch) | |
tree | 4dec5cdb3cc59662e9b7fa67f0037b4424b6e405 /protocols/jabber/conference.c | |
parent | 9e768da723b4a770967efa0d4dcaf58ccef8917f (diff) |
Fixed a bug that caused crashes when joining certain kinds of Google Talk
chatrooms. Doesn't seem to be Google Talk specific, other than that this
is the first time I see empty <x xmlns="http://jabber.org/protocol/muc#user"/>
elements that cause this crash.
A more proper/efficient fix may be to just move the break outside the inner if.
Diffstat (limited to 'protocols/jabber/conference.c')
-rw-r--r-- | protocols/jabber/conference.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/protocols/jabber/conference.c b/protocols/jabber/conference.c index 480006bd..08bef4f5 100644 --- a/protocols/jabber/conference.c +++ b/protocols/jabber/conference.c @@ -233,8 +233,10 @@ void jabber_chat_pkt_presence( struct im_connection *ic, struct jabber_buddy *bu if( ( s = xt_find_attr( c, "xmlns" ) ) && ( strcmp( s, XMLNS_MUC_USER ) == 0 ) ) { - c = xt_find_node( c->children, "item" ); - if( ( s = xt_find_attr( c, "jid" ) ) ) + struct xt_node *item; + + item = xt_find_node( c->children, "item" ); + if( ( s = xt_find_attr( item, "jid" ) ) ) { /* Yay, found what we need. :-) */ bud->ext_jid = jabber_normalize( s ); |