From: mmaroti Date: Thu, 16 Jul 2009 13:00:08 +0000 (+0000) Subject: fix "trickles[id].period << scale" overflow X-Git-Tag: rc_6_tinyos_2_1_1~354 X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=commitdiff_plain;h=bfa403043f98fb652396c730805366da2f3a54ff fix "trickles[id].period << scale" overflow --- 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); }