From f8c90211849c49575af2b95e5acf7d6292776cec Mon Sep 17 00:00:00 2001 From: Kevin Easton Date: Wed, 18 Nov 2009 10:30:46 +0000 Subject: [PATCH] Fix minor memory leak in banlist.c:delay_flush_all. git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@79 13b04d17-f746-0410-82c6-800466cd88b0 --- Changelog | 2 ++ source/banlist.c | 25 +++++++++++++------------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/Changelog b/Changelog index 7c5c2dc..da60a11 100644 --- a/Changelog +++ b/Changelog @@ -1,5 +1,7 @@ [Changes 1.2c01] +* Fix memory leak in banlist.c. (caf) + * Apply a fix contributed by cpet for the configure script on FreeBSD 9. (caf) diff --git a/source/banlist.c b/source/banlist.c index 1a4860c..76db724 100644 --- a/source/banlist.c +++ b/source/banlist.c @@ -69,18 +69,19 @@ int ofs = from_server; channel = next_arg(args, &args); if ((serv_num = next_arg(args, &args))) from_server = atoi(serv_num); - if (channel && *channel && mode_str && user) - { - sprintf(buffer, "MODE %s %s%s %s\r\n", channel, plus_mode, mode_str, user); - push_len = strlen(buffer); - add_mode_buffer(buffer, push_len); - mode_str_len = 0; - new_free(&mode_str); - new_free(&user); - memset(plus_mode, 0, sizeof(plus_mode)); - push_len = 0; - } - flush_mode(NULL); + if (channel && *channel && mode_str && user) + { + sprintf(buffer, "MODE %s %s%s %s\r\n", channel, plus_mode, mode_str, user); + push_len = strlen(buffer); + add_mode_buffer(buffer, push_len); + mode_str_len = 0; + new_free(&mode_str); + new_free(&user); + memset(plus_mode, 0, sizeof(plus_mode)); + push_len = 0; + } + flush_mode(NULL); + new_free(&arg); from_server = ofs; return 0; }