summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes4
-rw-r--r--src/channels.c4
-rw-r--r--src/protocol/inspircd11.c12
-rw-r--r--version.log6
4 files changed, 23 insertions, 3 deletions
diff --git a/Changes b/Changes
index d5046ea5a..22520f9d6 100644
--- a/Changes
+++ b/Changes
@@ -52,6 +52,10 @@ Provided by Jan Milants <jan_renee@msn.com> - 2008
01/16 F Server traversion with next_server() failed to list all servers. [#831]
02/08 F Removed excessive free in ChanServ AKICK code. [#849]
+Provided by Hal9000 <hal9000@pimpmylinux.org> - 2005
+04/29 F Potential crash in channels.c. [ #00]
+04/29 F TS handling on incoming FMODE with InspIRCd 1.1. [ #00]
+
Anope Version 1.7.21
--------------------
12/30 F Grouped root nicks could result in loss of power when using MySQL.[#812]
diff --git a/src/channels.c b/src/channels.c
index 19d29a727..aec70dfe8 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -785,8 +785,8 @@ void do_sjoin(const char *source, int ac, char **av)
for (cu = c->users; cu; cu = cu->next) {
/* XXX */
cumodes[0] = "-ov";
- cumodes[1] = user->nick;
- cumodes[2] = user->nick;
+ cumodes[1] = cu->user->nick;
+ cumodes[2] = cu->user->nick;
chan_set_modes(source, c, 3, cumodes, 2);
}
if (c->ci && c->ci->bi) {
diff --git a/src/protocol/inspircd11.c b/src/protocol/inspircd11.c
index 6203072b7..bf96d8b21 100644
--- a/src/protocol/inspircd11.c
+++ b/src/protocol/inspircd11.c
@@ -667,11 +667,23 @@ int anope_event_fmode(char *source, int ac, char **av)
{
char *newav[25];
int n, o;
+ Channel *c;
/* :source FMODE #test 12345678 +nto foo */
if (ac < 3)
return MOD_CONT;
+ /* Checking the TS for validity to avoid desyncs */
+ c = findchan(av[0]);
+ if (c->creation_time > strtol(av[1], NULL, 10)) {
+ /* Our TS is bigger, we should lower it */
+ c->creation_time = strtol(av[1], NULL, 10);
+ } else if (c->creation_time < strtol(av[1], NULL, 10)) {
+ /* The TS we got is bigger, we should ignore the message. */
+ return MOD_CONT;
+ }
+
+ /* TS's are equal now, so we can proceed with parsing */
n = o = 0;
while (n < ac) {
if (n != 1) {
diff --git a/version.log b/version.log
index 5b9587ed1..a70faf854 100644
--- a/version.log
+++ b/version.log
@@ -9,10 +9,14 @@ VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="21"
VERSION_EXTRA="-svn"
-VERSION_BUILD="1390"
+VERSION_BUILD="1392"
# $Log$
#
+# BUILD : 1.7.21 (1392)
+# BUGS :
+# NOTES : <Hal9000> fixes a potential crash in channels.c and does handle the TS on incoming FMODE in inspircd.11
+#
# BUILD : 1.7.21 (1390)
# BUGS : 881
# NOTES : Fixed error in lang files related to NS SASET LANGUAGE