--- BitchX/source/commands.c.orig 2007-09-11 02:17:44.000000000 +0200 +++ BitchX/source/commands.c 2007-09-11 02:25:39.000000000 +0200 @@ -3111,6 +3111,7 @@ char Reason[BIG_BUFFER_SIZE + 1]; int active_dcc = 0; + memset(Reason, 0, sizeof(Reason)); if (args && *args) strcpy(Reason, args); --- BitchX/source/server.c.orig 2007-09-11 03:11:52.000000000 +0200 +++ BitchX/source/server.c 2007-09-11 03:14:45.000000000 +0200 @@ -102,7 +102,9 @@ */ void BX_close_server (int cs_index, char *message) { - char buffer[BIG_BUFFER_SIZE/4 + 1]; + char buffer[BIG_BUFFER_SIZE + 1]; + + memset(buffer, 0, sizeof(buffer)); if (cs_index < 0 || cs_index > number_of_servers) return; @@ -151,7 +153,7 @@ if (x_debug & DEBUG_OUTBOUND) yell("Closing server %d because [%s]", cs_index, message ? message : empty_string); - snprintf(buffer, BIG_BUFFER_SIZE, "QUIT :%s\n", message); + snprintf(buffer, sizeof(buffer) - 1, "QUIT :%s\n", message); #ifdef HAVE_SSL if (get_server_ssl(cs_index)) SSL_write(server_list[cs_index].ssl_fd, buffer, strlen(buffer));