summaryrefslogtreecommitdiff
path: root/net/dccp/dccp.h
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2006-12-10 00:03:51 -0200
committerDavid S. Miller <davem@sunset.davemloft.net>2006-12-11 14:34:45 -0800
commit0f9e5b573f7249b0e04a03457b55081d1f60f2bf (patch)
treefa33e3252d5df520348bb22d2a14aeac0e6b2bfc /net/dccp/dccp.h
parentbfe24a6cc222d27e1491f850802fa6932232b8ef (diff)
downloadlinux-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.h1
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