From: Kulikov Vasiliy Date: Sat, 17 Jul 2010 05:21:00 +0000 (+0000) Subject: net: dccp: fix sign bug X-Git-Tag: v2.6.36-rc1~571^2~186 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8e64159dfb480b30233d947d5a3cd793dfea738f;p=platform%2Fkernel%2Flinux-exynos.git 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/) // @ r1 @ identifier f; @@ int f(...) { ... } @@ identifier r1.f; type T; unsigned T x; @@ *x = f(...) ... *x > 0 Signed-off-by: Kulikov Vasiliy Signed-off-by: David S. Miller --- diff --git a/net/dccp/ackvec.c b/net/dccp/ackvec.c index 2abddee..92a6fcb 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)