diff options
author | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-01-26 10:50:44 +0000 |
---|---|---|
committer | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-01-26 10:50:44 +0000 |
commit | ba7e2d8440ad1936f33e0c017d1d202b7008b147 (patch) | |
tree | 1ba1850514a1f1f41e80435488eb394eb8962fbc | |
parent | 3e977708beb1cd13a0c66f2bdfb6f1303ab5e588 (diff) |
BUILD : 1.7.21 (1363) BUGS : 842 NOTES : Fixed yet another memory leak; it wass cs_akick this time
git-svn-id: svn://svn.anope.org/anope/trunk@1363 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1078 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r-- | Changes | 1 | ||||
-rw-r--r-- | src/core/cs_akick.c | 11 | ||||
-rw-r--r-- | version.log | 6 |
3 files changed, 17 insertions, 1 deletions
@@ -15,6 +15,7 @@ Anope Version S V N 01/26 F Memory leak and old code in ChanServ CLEAR. [#839] 01/26 F Memory leak in ChanServ LIST. [#840] 01/26 F Memory leaks in HostServ SETALL. [#841] +01/26 F Memory leak in ChanServ AKICK. [#842] Provided by Jan Milants <jan_renee@msn.com> - 2008 01/16 F Server traversion with next_server() failed to list all servers. [#831] diff --git a/src/core/cs_akick.c b/src/core/cs_akick.c index c6b98f1c9..b3c15cd6f 100644 --- a/src/core/cs_akick.c +++ b/src/core/cs_akick.c @@ -209,6 +209,7 @@ int do_akick(User * u) NickAlias *na = findnick(mask); NickCore *nc = NULL; char *nick, *user, *host; + int freemask = 0; if (readonly) { notice_lang(s_ChanServ, u, CHAN_AKICK_DISABLED); @@ -219,6 +220,7 @@ int do_akick(User * u) split_usermask(mask, &nick, &user, &host); mask = scalloc(strlen(nick) + strlen(user) + strlen(host) + 3, 1); + freemask = 1; sprintf(mask, "%s!%s@%s", nick, user, host); free(nick); free(user); @@ -235,6 +237,8 @@ int do_akick(User * u) if (ircd->except) { if (is_excepted_mask(ci, mask) == 1) { notice_lang(s_ChanServ, u, CHAN_EXCEPTED, mask, chan); + if (freemask) + free(mask); return MOD_CONT; } } @@ -247,6 +251,8 @@ int do_akick(User * u) notice_lang(s_ChanServ, u, CHAN_AKICK_ALREADY_EXISTS, (akick->flags & AK_ISNICK) ? akick->u.nc-> display : akick->u.mask, chan); + if (freemask) + free(mask); return MOD_CONT; } } @@ -255,6 +261,8 @@ int do_akick(User * u) * the entire list. We simply add new entries at the end. */ if (ci->akickcount >= CSAutokickMax) { notice_lang(s_ChanServ, u, CHAN_AKICK_REACHED_LIMIT, CSAutokickMax); + if (freemask) + free(mask); return MOD_CONT; } ci->akickcount++; @@ -308,6 +316,9 @@ int do_akick(User * u) if (count) notice_lang(s_ChanServ, u, CHAN_AKICK_ENFORCE_DONE, chan, count); + + if (freemask) + free(mask); } else if (stricmp(cmd, "STICK") == 0) { NickAlias *na; diff --git a/version.log b/version.log index a00b476a1..f2ba72260 100644 --- a/version.log +++ b/version.log @@ -9,10 +9,14 @@ VERSION_MAJOR="1" VERSION_MINOR="7" VERSION_PATCH="21" VERSION_EXTRA="-svn" -VERSION_BUILD="1362" +VERSION_BUILD="1363" # $Log$ # +# BUILD : 1.7.21 (1363) +# BUGS : 842 +# NOTES : Fixed yet another memory leak; it wass cs_akick this time +# # BUILD : 1.7.21 (1362) # BUGS : 841 # NOTES : Fixed memleaks in hs_setall |