summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcertus 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
committercertus 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
commit035e196c0f038d8d394c2f46bf90d549f678cc73 (patch)
tree47d6169bb2577208daa7042df87105ddc38a18ab
parenta7a2d3fa8a28addfd858bb67b0b92627993f7220 (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--Changes2
-rw-r--r--src/channels.c2
-rw-r--r--src/core/cs_list.c9
-rw-r--r--src/core/hs_list.c4
-rw-r--r--src/core/ns_list.c9
-rw-r--r--version.log6
6 files changed, 29 insertions, 3 deletions
diff --git a/Changes b/Changes
index 73a40d1aa..20f51ead2 100644
--- a/Changes
+++ b/Changes
@@ -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