From 7530285740c2db1bc4457859b0d5f2436e0ed113 Mon Sep 17 00:00:00 2001 From: linuxdaemon Date: Fri, 21 Dec 2018 12:37:22 -0600 Subject: Only parse valid durations, don't treat invalid multipliers as seconds (#1538) --- src/modules/m_repeat.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/modules/m_repeat.cpp') diff --git a/src/modules/m_repeat.cpp b/src/modules/m_repeat.cpp index bd4206166..a8dd49e2d 100644 --- a/src/modules/m_repeat.cpp +++ b/src/modules/m_repeat.cpp @@ -34,7 +34,7 @@ class ChannelSettings unsigned int Backlog; unsigned int Lines; unsigned int Diff; - unsigned int Seconds; + unsigned long Seconds; void serialize(std::string& out) const { @@ -277,7 +277,10 @@ class RepeatMode : public ParamMode > if ((settings.Lines = ConvToNum(item)) == 0) return false; - if ((!stream.GetToken(item)) || ((settings.Seconds = InspIRCd::Duration(item)) == 0)) + if (!InspIRCd::Duration(item, settings.Seconds)) + return false; + + if ((!stream.GetToken(item)) || (settings.Seconds == 0)) // Required parameter missing return false; -- cgit v1.3.1-10-gc9f91