aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/jabber
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@google.com>2011-08-04 16:19:54 +0100
committerWilmer van der Gaast <wilmer@google.com>2011-08-04 16:19:54 +0100
commit911d97a988d5f3d90c4b15c05adc733ada1fb37a (patch)
treebef40797d38f32de99204333943a5515afb644a3 /protocols/jabber
parentf988ad3fd0bb29ae8a16f5d921b92fd90b7792a6 (diff)
Error handling fixes.
Found one double free() bug causing troubles when a buddy_msg() handler takes down the IM connection immediately.
Diffstat (limited to 'protocols/jabber')
-rw-r--r--protocols/jabber/jabber.c1
-rw-r--r--protocols/jabber/sasl.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/protocols/jabber/jabber.c b/protocols/jabber/jabber.c
index 0ae903e2..e7692484 100644
--- a/protocols/jabber/jabber.c
+++ b/protocols/jabber/jabber.c
@@ -318,6 +318,7 @@ static int jabber_buddy_msg( struct im_connection *ic, char *who, char *message,
{
imcb_error( ic, "OAuth failure" );
imc_logout( ic, TRUE );
+ return 0;
}
}
diff --git a/protocols/jabber/sasl.c b/protocols/jabber/sasl.c
index f232864b..f21a6706 100644
--- a/protocols/jabber/sasl.c
+++ b/protocols/jabber/sasl.c
@@ -447,7 +447,8 @@ void sasl_oauth2_init( struct im_connection *ic )
static gboolean sasl_oauth2_remove_contact( gpointer data, gint fd, b_input_condition cond )
{
struct im_connection *ic = data;
- imcb_remove_buddy( ic, "jabber_oauth", NULL );
+ if( g_slist_find( jabber_connections, ic ) )
+ imcb_remove_buddy( ic, "jabber_oauth", NULL );
return FALSE;
}