diff options
-rw-r--r-- | Changes | 1 | ||||
-rw-r--r-- | src/protocol/inspircd11.c | 16 |
2 files changed, 11 insertions, 6 deletions
@@ -61,6 +61,7 @@ Provided by Jan Milants <jan_renee@msn.com> - 2008 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] +05/20 F Possible crash in new TS handling for InspIRCd 1.1. [ #00] Anope Version 1.7.21 -------------------- diff --git a/src/protocol/inspircd11.c b/src/protocol/inspircd11.c index bf96d8b21..c8315d231 100644 --- a/src/protocol/inspircd11.c +++ b/src/protocol/inspircd11.c @@ -674,12 +674,16 @@ int anope_event_fmode(char *source, int ac, char **av) 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. */ + if ((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 this message. */ + return MOD_CONT; + } + } else { + /* Got FMODE for a non-existing channel */ return MOD_CONT; } |