]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Fix potential division by zero in shaper_reset()
authorGert Doering <gert@greenie.muc.de>
Tue, 8 Nov 2016 09:44:02 +0000 (10:44 +0100)
committerGert Doering <gert@greenie.muc.de>
Tue, 8 Nov 2016 10:17:04 +0000 (11:17 +0100)
shaper_reset() is only ever called with "bytes_per_second" set to
a non-zero value - so the whole check "is it zero? if not, use
constrain_int() to make sure it is within bounds" is not needed ->
reduce check to just constrain_int() so even if somebody would
call shaper_reset(..., 0) it would not lead to a div-by-zero.

Found by Coverity.

Signed-off-by: Gert Doering <gert@greenie.muc.de>
Acked-by: Steffan Karger <steffan.karger@fox-it.com>
Message-Id: <1478598242-23514-1-git-send-email-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg12942.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/shaper.h

index afeb9c3cd042f440af657485a85a0ab8bf4efeba..fa132c40bf1ef162960fa6e774f72718ff6f837f 100644 (file)
@@ -75,7 +75,7 @@ bool shaper_soonest_event (struct timeval *tv, int delay);
 static inline void
 shaper_reset (struct shaper *s, int bytes_per_second)
 {
-  s->bytes_per_second = bytes_per_second ? constrain_int (bytes_per_second, SHAPER_MIN, SHAPER_MAX) : 0;
+  s->bytes_per_second = constrain_int (bytes_per_second, SHAPER_MIN, SHAPER_MAX);
 
 #ifdef SHAPER_USE_FP
   s->factor = 1000000.0 / (double)s->bytes_per_second;