diff options
author | certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b <certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2006-03-01 18:43:35 +0000 |
---|---|---|
committer | certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b <certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2006-03-01 18:43:35 +0000 |
commit | 035e196c0f038d8d394c2f46bf90d549f678cc73 (patch) | |
tree | 47d6169bb2577208daa7042df87105ddc38a18ab | |
parent | a7a2d3fa8a28addfd858bb67b0b92627993f7220 (diff) |
# BUILD : 1.7.13 (992)
# BUGS : 450 447
# NOTES : Fixed more memleaks.
git-svn-id: svn://svn.anope.org/anope/trunk@992 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@717 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r-- | Changes | 2 | ||||
-rw-r--r-- | src/channels.c | 2 | ||||
-rw-r--r-- | src/core/cs_list.c | 9 | ||||
-rw-r--r-- | src/core/hs_list.c | 4 | ||||
-rw-r--r-- | src/core/ns_list.c | 9 | ||||
-rw-r--r-- | version.log | 6 |
6 files changed, 29 insertions, 3 deletions
@@ -24,6 +24,8 @@ Provided by Anope Dev. <dev@anope.org> - 2006 03/01 F Made should_mode_change() extern. [#436] 03/01 F Made add_ns_timeout() static. [#438] 03/01 F Fixed memleak in os_mode.c. [#444] +03/01 F Fixed memleak in do_mass_mode(). [#450] +03/01 F Fixed memleaks in cs_list.c, hs_list.c and ns_list.c. [#447] Provided by nenolod. <nenolod@nenolod.net> - 2006 02/03 A Support for Charybdis IRCd. [ #00] diff --git a/src/channels.c b/src/channels.c index dacf98895..e4ae41475 100644 --- a/src/channels.c +++ b/src/channels.c @@ -1869,6 +1869,7 @@ void do_mass_mode(char *modes) for (i = 0; i < 1024; i++) { for (c = chanlist[i]; c; c = c->next) { if (c->bouncy_modes) { + free(av); free(myModes); return; } else { @@ -1877,6 +1878,7 @@ void do_mass_mode(char *modes) } } } + free(av); free(myModes); } diff --git a/src/core/cs_list.c b/src/core/cs_list.c index 04e84ecf4..315f92cc7 100644 --- a/src/core/cs_list.c +++ b/src/core/cs_list.c @@ -76,7 +76,7 @@ int do_list(User * u) int nchans, i; char buf[BUFSIZE]; int is_servadmin = is_services_admin(u); - int count = 0, from = 0, to = 0; + int count = 0, from = 0, to = 0, tofree = 0; char *tmp = NULL; char *s = NULL; char *keyword; @@ -101,21 +101,26 @@ int do_list(User * u) } for (s = tmp; *s; s++) { if (!isdigit(*s)) { + free(tmp); return MOD_CONT; } } from = atoi(tmp); + free(tmp); tmp = myStrGetTokenRemainder(pattern, '-', 1); /* Read TO out */ if (!tmp) { return MOD_CONT; } for (s = tmp; *s; s++) { if (!isdigit(*s)) { + free(tmp); return MOD_CONT; } } to = atoi(tmp); + free(tmp); pattern = sstrdup("*"); + tofree = 1; } } @@ -169,6 +174,8 @@ int do_list(User * u) notice_lang(s_ChanServ, u, CHAN_LIST_END, nchans > CSListMax ? CSListMax : nchans, nchans); } + if (tofree) + free(pattern); return MOD_CONT; } diff --git a/src/core/hs_list.c b/src/core/hs_list.c index c8d096db7..ac26a2d0b 100644 --- a/src/core/hs_list.c +++ b/src/core/hs_list.c @@ -97,20 +97,24 @@ int listOut(User * u) } for (s = tmp; *s; s++) { if (!isdigit(*s)) { + free(tmp); return MOD_CONT; } } from = atoi(tmp); + free(tmp); tmp = myStrGetTokenRemainder(key, '-', 1); /* Read TO out */ if (!tmp) { return MOD_CONT; } for (s = tmp; *s; s++) { if (!isdigit(*s)) { + free(tmp); return MOD_CONT; } } to = atoi(tmp); + free(tmp); key = NULL; } } diff --git a/src/core/ns_list.c b/src/core/ns_list.c index 825406acd..91cd2d356 100644 --- a/src/core/ns_list.c +++ b/src/core/ns_list.c @@ -95,7 +95,7 @@ int do_list(User * u) NickRequest *nr = NULL; int nronly = 0; char noexpire_char = ' '; - int count = 0, from = 0, to = 0; + int count = 0, from = 0, to = 0, tofree = 0; char *tmp = NULL; char *s = NULL; @@ -118,21 +118,26 @@ int do_list(User * u) } for (s = tmp; *s; s++) { if (!isdigit(*s)) { + free(tmp); return MOD_CONT; } } from = atoi(tmp); + free(tmp); tmp = myStrGetTokenRemainder(pattern, '-', 1); /* Read TO out */ if (!tmp) { return MOD_CONT; } for (s = tmp; *s; s++) { if (!isdigit(*s)) { + free(tmp); return MOD_CONT; } } to = atoi(tmp); + free(tmp); pattern = sstrdup("*"); + tofree = 1; } } @@ -222,5 +227,7 @@ int do_list(User * u) notice_lang(s_NickServ, u, NICK_LIST_RESULTS, nnicks > NSListMax ? NSListMax : nnicks, nnicks); } + if (tofree) + free(pattern); return MOD_CONT; } diff --git a/version.log b/version.log index 5de39a5c7..c87527e5f 100644 --- a/version.log +++ b/version.log @@ -9,10 +9,14 @@ VERSION_MAJOR="1" VERSION_MINOR="7" VERSION_PATCH="13" VERSION_EXTRA="-svn" -VERSION_BUILD="989" +VERSION_BUILD="992" # $Log$ # +# BUILD : 1.7.13 (992) +# BUGS : 450 447 +# NOTES : Fixed more memleaks. +# # BUILD : 1.7.13 (989) # BUGS : 444 # NOTES : Fixed memleak in os_mode.c |