diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/botserv.c | 10 | ||||
-rw-r--r-- | src/core/bs_fantasy_seen.c | 2 | ||||
-rw-r--r-- | src/core/bs_fantasy_unban.c | 3 |
3 files changed, 13 insertions, 2 deletions
diff --git a/src/botserv.c b/src/botserv.c index 8f76fa5f9..cc2dadd89 100644 --- a/src/botserv.c +++ b/src/botserv.c @@ -282,6 +282,9 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf) && (stristr(nbuf, wordbuf)))) { mustkick = 1; } + + /* free previous (sc)allocated memory (#850) */ + free(wordbuf); } } } else if (bw->type == BW_START) { @@ -341,13 +344,16 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf) bot_kick(ci, u, BOT_REASON_BADWORD_GENTLE); else bot_kick(ci, u, BOT_REASON_BADWORD, bw->word); + + /* free the normalized buffer before return (#850) */ + Anope_Free(nbuf); + return; } } /* Free the normalized buffer */ - if (nbuf) - free(nbuf); + Anope_Free(nbuf); } /* Flood kicker */ diff --git a/src/core/bs_fantasy_seen.c b/src/core/bs_fantasy_seen.c index d7548f117..75abdd26b 100644 --- a/src/core/bs_fantasy_seen.c +++ b/src/core/bs_fantasy_seen.c @@ -131,6 +131,8 @@ int do_fantasy(int argc, char **argv) target); anope_cmd_privmsg(ci->bi->nick, ci->name, "%s", buf); } + /* free myStrGetToken(ed) variable target (#851) */ + Anope_Free(target); } return MOD_CONT; diff --git a/src/core/bs_fantasy_unban.c b/src/core/bs_fantasy_unban.c index 7f0bc7f5a..a17e06551 100644 --- a/src/core/bs_fantasy_unban.c +++ b/src/core/bs_fantasy_unban.c @@ -73,6 +73,9 @@ int do_fantasy(int argc, char **argv) common_unban(ci, u->nick); else common_unban(ci, target); + + /* free target if needed (#852) */ + Anope_Free(target); } return MOD_CONT; |