diff options
author | trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b <trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-01-16 18:13:29 +0000 |
---|---|---|
committer | trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b <trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-01-16 18:13:29 +0000 |
commit | bafd62e477149e265703abb6d926898fe3705b46 (patch) | |
tree | 3e4e71da10da917a7c99f604fc7bf2bab828a3e5 /src | |
parent | a3d993d02c765dc5dd678ff41ad60b2d32d09424 (diff) |
BUILD : 1.7.7 (540) BUGS : 277 NOTES : BotServ Badwords (START) would return a false positivie when BSCaseSensitive is enabled
git-svn-id: svn://svn.anope.org/anope/trunk@540 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@393 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r-- | src/botserv.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/src/botserv.c b/src/botserv.c index b2cec855e..040de4881 100644 --- a/src/botserv.c +++ b/src/botserv.c @@ -295,7 +295,7 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf) } else if (bw->type == BW_SINGLE) { int len = strlen(bw->word); - if ((BSCaseSensitive && strstr(nbuf, bw->word)) + if ((BSCaseSensitive && !strcmp(nbuf, bw->word)) || (!BSCaseSensitive && (!stricmp(nbuf, bw->word)))) { mustkick = 1; @@ -303,12 +303,12 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf) } else if ((strchr(nbuf, ' ') == nbuf + len) && ((BSCaseSensitive - && (strstr(nbuf, bw->word) == nbuf)) + && !strcmp(nbuf, bw->word)) || (!BSCaseSensitive && (stristr(nbuf, bw->word) == nbuf)))) { mustkick = 1; - } else + } else { if ((strrchr(nbuf, ' ') == nbuf + strlen(nbuf) - len - 1) && @@ -318,19 +318,22 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf) || (!BSCaseSensitive && (stristr(nbuf, bw->word) == nbuf + strlen(nbuf) - len)))) { - mustkick = 1; - } else { - char *wordbuf = scalloc(len + 3, 1); + mustkick = 1; + } else { + char *wordbuf = scalloc(len + 3, 1); - wordbuf[0] = ' '; - wordbuf[len + 1] = ' '; - wordbuf[len + 2] = '\0'; - memcpy(wordbuf + 1, bw->word, len); + wordbuf[0] = ' '; + wordbuf[len + 1] = ' '; + wordbuf[len + 2] = '\0'; + memcpy(wordbuf + 1, bw->word, len); - if ((BSCaseSensitive && (strstr(nbuf, wordbuf))) - || (!BSCaseSensitive - && (stristr(nbuf, wordbuf)))) - mustkick = 1; + if ((BSCaseSensitive + && (strstr(nbuf, wordbuf))) + || (!BSCaseSensitive + && (stristr(nbuf, wordbuf)))) { + mustkick = 1; + } + } } } else if (bw->type == BW_START) { int len = strlen(bw->word); |