diff options
| author | rburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-02-22 17:20:30 +0000 |
|---|---|---|
| committer | rburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-02-22 17:20:30 +0000 |
| commit | fa0d664063d479759073629f5d183a6266a428f0 (patch) | |
| tree | 1a437f41569d28591e456f48d7da1787bc0a8378 | |
| parent | c3f28223f8447ff8d49007b45141d673fef56060 (diff) | |
Forward port of patch by DukePyrolator fixing memory leak on +beI modes.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2124 5417fbe8-f217-4b02-8779-1006273d7864
| -rw-r--r-- | Changes | 1 | ||||
| -rw-r--r-- | src/channels.c | 15 |
2 files changed, 11 insertions, 5 deletions
@@ -27,6 +27,7 @@ F Pass the right array to do_umode(), fixes mode tracking on Unreal. Thanks to D F Fix bs_set help, thanks to DukePyrolator! :) F Fix two segfaults, noted by DukePyrolator. Thanks! F Fix part one of #1010, reported by DukePyrolator. (Language settings are not respected in message sending.) Thanks! +F Memory leak on +beI modes. Anope Version 1.9.0 diff --git a/src/channels.c b/src/channels.c index f28059250..e79e8f902 100644 --- a/src/channels.c +++ b/src/channels.c @@ -762,7 +762,7 @@ void do_sjoin(const char *source, int ac, const char **av) Server *serv; struct c_userlist *cu; const char *s = NULL; - char *end, cubuf[7], *end2; + char *buf, *end, cubuf[7], *end2; const char *modes[6]; int is_sqlined = 0; int ts = 0; @@ -823,7 +823,9 @@ void do_sjoin(const char *source, int ac, const 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); + delete [] buf; if (!end) break; s = end + 1; @@ -832,8 +834,9 @@ void do_sjoin(const char *source, int ac, const 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); + delete [] buf; if (!end) break; s = end + 1; @@ -843,7 +846,9 @@ void do_sjoin(const char *source, int ac, const 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); + delete [] buf; if (!end) break; s = end + 1; |
