aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dcc.c3
-rw-r--r--lib/ftutil.c2
-rw-r--r--lib/http_client.c3
-rw-r--r--protocols/jabber/s5bytestream.c6
-rw-r--r--protocols/jabber/si.c3
5 files changed, 15 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;
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 );