diff options
author | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2006-12-10 00:03:51 -0200 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-12-11 14:34:45 -0800 |
commit | 0f9e5b573f7249b0e04a03457b55081d1f60f2bf (patch) | |
tree | fa33e3252d5df520348bb22d2a14aeac0e6b2bfc /net/dccp/dccp.h | |
parent | bfe24a6cc222d27e1491f850802fa6932232b8ef (diff) | |
download | linux-3.10-0f9e5b573f7249b0e04a03457b55081d1f60f2bf.tar.gz linux-3.10-0f9e5b573f7249b0e04a03457b55081d1f60f2bf.tar.bz2 linux-3.10-0f9e5b573f7249b0e04a03457b55081d1f60f2bf.zip |
[DCCP]: Debug timeval operations
Problem:
Most target types in the CCID3 code are u32, so subtle conversion errors
can occur if signed time calculations yield negative results: the original
values are lost in the conversion to unsigned, calculation errors go undetected.
This patch therefore
* sets all critical time types from unsigned to suseconds_t
* avoids comparison between signed/unsigned via type-casting
* provides ample warning messages in case time calculations are negative
These warning messages can be removed at a later stage when the code
has undergone more testing.
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Diffstat (limited to 'net/dccp/dccp.h')
-rw-r--r-- | net/dccp/dccp.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/dccp/dccp.h b/net/dccp/dccp.h index 44829d636c9..a0900bf98e6 100644 --- a/net/dccp/dccp.h +++ b/net/dccp/dccp.h @@ -432,6 +432,7 @@ static inline void timeval_sub_usecs(struct timeval *tv, tv->tv_sec--; tv->tv_usec += USEC_PER_SEC; } + DCCP_BUG_ON(tv->tv_sec < 0); } #ifdef CONFIG_SYSCTL |