Explorar o código

[PKT_SCHED]: Fix range in psched_tod_diff() to 0..bound

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Nicolas Dichtel %!s(int64=20) %!d(string=hai) anos
pai
achega
7b3c63ac7c
Modificáronse 1 ficheiros con 3 adicións e 2 borrados
  1. 3 2
      include/net/pkt_sched.h

+ 3 - 2
include/net/pkt_sched.h

@@ -140,7 +140,7 @@ psched_tod_diff(int delta_sec, int bound)
 	if (bound <= 1000000 || delta_sec > (0x7FFFFFFF/1000000)-1)
 		return bound;
 	delta = delta_sec * 1000000;
-	if (delta > bound)
+	if (delta > bound || delta < 0)
 		delta = bound;
 	return delta;
 }
@@ -156,7 +156,8 @@ psched_tod_diff(int delta_sec, int bound)
 		   __delta += 1000000; \
 	   case 1: \
 		   __delta += 1000000; \
-	   case 0: ; \
+	   case 0: \
+		   __delta = abs(__delta); \
 	   } \
 	   __delta; \
 })