summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsjaz <sjaz@5417fbe8-f217-4b02-8779-1006273d7864>2009-03-22 09:40:57 +0000
committersjaz <sjaz@5417fbe8-f217-4b02-8779-1006273d7864>2009-03-22 09:40:57 +0000
commit9d7edd3055e79015635de89087ecb84cc0241514 (patch)
tree55aa45c981a3c9054688ff29b4af2a8c34d6a6a9
parent2af1c0a5e9ee1b7f8438aed2174e2b8776a276b4 (diff)
Fix memleak in channels.c from DukePyrolator. (Same fix applied to 1.9 earlier). Thanks DP!
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2182 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r--src/channels.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/channels.c b/src/channels.c
index 167af3013..4d3ab6474 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -768,7 +768,7 @@ void do_sjoin(const char *source, int ac, char **av)
Server *serv;
struct c_userlist *cu;
char *s = NULL;
- char *end, cubuf[7], *end2, *cumodes[6];
+ char *end, cubuf[7], *end2, *cumodes[6], *buf;
int is_sqlined = 0;
int ts = 0;
int is_created = 0;
@@ -828,7 +828,10 @@ void do_sjoin(const char *source, int ac, char **av)
if (ircd->sjoinbanchar) {
if (*s == ircd->sjoinbanchar && keep_their_modes) {
- add_ban(c, myStrGetToken(s, ircd->sjoinbanchar, 1));
+ buf = myStrGetToken(s, ircd->sjoinbanchar, 1);
+ add_ban(c, buf);
+ if (buf)
+ free(buf);
if (!end)
break;
s = end + 1;
@@ -837,8 +840,10 @@ void do_sjoin(const char *source, int ac, char **av)
}
if (ircd->sjoinexchar) {
if (*s == ircd->sjoinexchar && keep_their_modes) {
- add_exception(c,
- myStrGetToken(s, ircd->sjoinexchar, 1));
+ buf = myStrGetToken(s, ircd->sjoinexchar, 1);
+ add_exception(c, buf);
+ if (buf)
+ free(buf);
if (!end)
break;
s = end + 1;
@@ -848,7 +853,10 @@ void do_sjoin(const char *source, int ac, char **av)
if (ircd->sjoininvchar) {
if (*s == ircd->sjoininvchar && keep_their_modes) {
- add_invite(c, myStrGetToken(s, ircd->sjoininvchar, 1));
+ buf = myStrGetToken(s, ircd->sjoininvchar, 1);
+ add_invite(c, buf);
+ if (buf)
+ free(buf);
if (!end)
break;
s = end + 1;