summaryrefslogtreecommitdiff
path: root/net/dccp
diff options
context:
space:
mode:
authorKulikov Vasiliy <segooon@gmail.com>2010-07-17 05:21:00 +0000
committerDavid S. Miller <davem@davemloft.net>2010-07-18 15:07:14 -0700
commit8e64159dfb480b30233d947d5a3cd793dfea738f (patch)
tree81e564d8f12fe7c8a7b9819572a1f1787c1d224e /net/dccp
parentbfc978fa5f3005e5dfb39c52393c3339f4f00233 (diff)
downloadlinux-3.10-8e64159dfb480b30233d947d5a3cd793dfea738f.tar.gz
linux-3.10-8e64159dfb480b30233d947d5a3cd793dfea738f.tar.bz2
linux-3.10-8e64159dfb480b30233d947d5a3cd793dfea738f.zip
net: dccp: fix sign bug
'gap' is unsigned, so this code is wrong: gap = -new_head; ... if (gap > 0) { ... } Make 'gap' signed. The semantic patch that finds this problem (many false-positive results): (http://coccinelle.lip6.fr/) // <smpl> @ r1 @ identifier f; @@ int f(...) { ... } @@ identifier r1.f; type T; unsigned T x; @@ *x = f(...) ... *x > 0 Signed-off-by: Kulikov Vasiliy <segooon@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp')
-rw-r--r--net/dccp/ackvec.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/dccp/ackvec.c b/net/dccp/ackvec.c
index 2abddee4830..92a6fcb40d7 100644
--- a/net/dccp/ackvec.c
+++ b/net/dccp/ackvec.c
@@ -201,7 +201,7 @@ static inline int dccp_ackvec_set_buf_head_state(struct dccp_ackvec *av,
const unsigned int packets,
const unsigned char state)
{
- unsigned int gap;
+ long gap;
long new_head;
if (av->av_vec_len + packets > DCCP_MAX_ACKVEC_LEN)