summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes1
-rw-r--r--src/botserv.c31
-rw-r--r--version.log6
3 files changed, 23 insertions, 15 deletions
diff --git a/Changes b/Changes
index b1e796959..ae012f671 100644
--- a/Changes
+++ b/Changes
@@ -1,6 +1,7 @@
Anope Version S V N
-------------------
Provided by Anope Dev. <dev@anope.org> - 2005
+01/16 F BS Badwords had a false positives if BSCaseSensitive wass enabled [#277]
01/15 F Updated typo in example.conf. [#279]
Anope Version 1.7.7
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);
diff --git a/version.log b/version.log
index c5a12a136..5a92b5a56 100644
--- a/version.log
+++ b/version.log
@@ -8,10 +8,14 @@
VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="7"
-VERSION_BUILD="539"
+VERSION_BUILD="540"
# $Log$
#
+# BUILD : 1.7.7 (540)
+# BUGS : 277
+# NOTES : BotServ Badwords (START) would return a false positivie when BSCaseSensitive is enabled
+#
# BUILD : 1.7.7 (539)
# BUGS : 279
# NOTES : Fixed typo in example.conf...