]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
fix "trickles[id].period << scale" overflow
authormmaroti <mmaroti>
Thu, 16 Jul 2009 13:00:08 +0000 (13:00 +0000)
committermmaroti <mmaroti>
Thu, 16 Jul 2009 13:00:08 +0000 (13:00 +0000)
tos/lib/net/TrickleTimerImplP.nc

index 68ffc4669263593dff6ecbd696620fe261e09929..de0bbe86e8ca918c4c7c46f88c98e3b6e263bb9b 100644 (file)
@@ -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);
   }