From bfa403043f98fb652396c730805366da2f3a54ff Mon Sep 17 00:00:00 2001 From: mmaroti Date: Thu, 16 Jul 2009 13:00:08 +0000 Subject: [PATCH] fix "trickles[id].period << scale" overflow --- tos/lib/net/TrickleTimerImplP.nc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tos/lib/net/TrickleTimerImplP.nc b/tos/lib/net/TrickleTimerImplP.nc index 68ffc466..de0bbe86 100644 --- a/tos/lib/net/TrickleTimerImplP.nc +++ b/tos/lib/net/TrickleTimerImplP.nc @@ -262,7 +262,7 @@ implementation { rval = call Random.rand16() % (trickles[id].period << (scale - 1)); newTime += rval; - trickles[id].remainder = (trickles[id].period << scale) - newTime; + trickles[id].remainder = (((uint32_t)trickles[id].period) << scale) - newTime; trickles[id].time += newTime; dbg("Trickle,TrickleTimes", "Generated time for %hhu with period %hu (%u) is %u (%i + %hu)\n", id, trickles[id].period, (uint32_t)trickles[id].period << scale, trickles[id].time, (trickles[id].period << (scale - 1)), rval); } -- 2.39.2