From 8256ad5ed0c545dfbfd0035d0bac8296ac224467 Mon Sep 17 00:00:00 2001 From: dequis Date: Mon, 27 Oct 2014 03:36:05 -0300 Subject: Some more g_source_remove warning fixes - http_incoming_data calling itself - jabber_bs_free_transfer calling jabber_si_free_transfer --- lib/http_client.c | 3 +++ protocols/jabber/s5bytestream.c | 6 ++++++ protocols/jabber/si.c | 3 +++ 3 files changed, 12 insertions(+) diff --git a/lib/http_client.c b/lib/http_client.c index 18c393f8..590b8143 100644 --- a/lib/http_client.c +++ b/lib/http_client.c @@ -210,7 +210,10 @@ static gboolean http_incoming_data( gpointer data, int source, b_input_condition int st; if( req->inpa > 0 ) + { b_event_remove( req->inpa ); + req->inpa = 0; + } if( req->ssl ) { diff --git a/protocols/jabber/s5bytestream.c b/protocols/jabber/s5bytestream.c index f4618cef..6b22d95f 100644 --- a/protocols/jabber/s5bytestream.c +++ b/protocols/jabber/s5bytestream.c @@ -122,10 +122,16 @@ void jabber_bs_free_transfer( file_transfer_t *ft) { } if ( tf->watch_in ) + { b_event_remove( tf->watch_in ); + tf->watch_in = 0; + } if( tf->watch_out ) + { b_event_remove( tf->watch_out ); + tf->watch_out = 0; + } g_free( bt->pseudoadr ); diff --git a/protocols/jabber/si.c b/protocols/jabber/si.c index f5f3b2fe..f3060fff 100644 --- a/protocols/jabber/si.c +++ b/protocols/jabber/si.c @@ -34,7 +34,10 @@ void jabber_si_free_transfer( file_transfer_t *ft) struct jabber_data *jd = tf->ic->proto_data; if ( tf->watch_in ) + { b_event_remove( tf->watch_in ); + tf->watch_in = 0; + } jd->filetransfers = g_slist_remove( jd->filetransfers, tf ); -- cgit v1.2.3 From b6bd99c766d88ef37c735f5bbd08e621288d955d Mon Sep 17 00:00:00 2001 From: dequis Date: Mon, 27 Oct 2014 03:36:09 -0300 Subject: dcc: Fix some invalid memory accesses reported by ASAN ASAN <3 --- dcc.c | 3 ++- lib/ftutil.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dcc.c b/dcc.c index 794b3613..8fca9ac2 100644 --- a/dcc.c +++ b/dcc.c @@ -384,10 +384,11 @@ gboolean dccs_recv_proto( gpointer data, gint fd, b_input_condition cond ) if( df->watch_out ) b_event_remove( df->watch_out ); + df->watch_in = 0; + if( df->proto_finished ) dcc_finish( ft ); - df->watch_in = 0; return FALSE; } diff --git a/lib/ftutil.c b/lib/ftutil.c index 71c09b50..3b29d2f4 100644 --- a/lib/ftutil.c +++ b/lib/ftutil.c @@ -137,7 +137,7 @@ int ft_listen( struct sockaddr_storage *saddr_ptr, char *host, char *port, int c memcpy( saddr_ptr, saddr, saddrlen ); /* I hate static-length strings.. */ - host[HOST_NAME_MAX] = '\0'; + host[HOST_NAME_MAX-1] = '\0'; port[5] = '\0'; return fd; -- cgit v1.2.3