Fix overflow in time2tick / tick2time. The helper functions gets passed an unsigned int, which gets cast to long and overflows. See Debian bug #175462 - http://bugs.debian.org/175462 Signed-off-by: Andreas Henriksson diff -uri iproute-20070313.orig/tc/tc_core.c iproute-20070313/tc/tc_core.c --- iproute-20070313.orig/tc/tc_core.c 2007-03-13 22:50:56.000000000 +0100 +++ iproute-20070313/tc/tc_core.c 2007-08-15 00:41:30.000000000 +0200 @@ -35,12 +35,12 @@ } -long tc_core_time2tick(long time) +unsigned tc_core_time2tick(unsigned time) { return time*tick_in_usec; } -long tc_core_tick2time(long tick) +unsigned tc_core_tick2time(unsigned tick) { return tick/tick_in_usec; } diff -uri iproute-20070313.orig/tc/tc_core.h iproute-20070313/tc/tc_core.h --- iproute-20070313.orig/tc/tc_core.h 2007-03-13 22:50:56.000000000 +0100 +++ iproute-20070313/tc/tc_core.h 2007-08-15 00:41:49.000000000 +0200 @@ -7,8 +7,8 @@ #define TIME_UNITS_PER_SEC 1000000000 int tc_core_time2big(long time); -long tc_core_time2tick(long time); -long tc_core_tick2time(long tick); +unsigned tc_core_time2tick(unsigned time); +unsigned tc_core_tick2time(unsigned tick); long tc_core_time2ktime(long time); long tc_core_ktime2time(long ktime); unsigned tc_calc_xmittime(unsigned rate, unsigned size);