diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2015-02-19 12:13:13 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-02-20 17:35:14 -0500 |
commit | 278f7b4fffce9ad267406cf8800df271d14f4a16 (patch) | |
tree | 7998890a3cedcf7dab3edab58064306734d3707c /net | |
parent | 5a8eeec468f229558322926f28c61bb0769793e9 (diff) | |
download | op-kernel-dev-278f7b4fffce9ad267406cf8800df271d14f4a16.zip op-kernel-dev-278f7b4fffce9ad267406cf8800df271d14f4a16.tar.gz |
caif: fix a signedness bug in cfpkt_iterate()
The cfpkt_iterate() function can return -EPROTO on error, but the
function is a u16 so the negative value gets truncated to a positive
unsigned short. This causes a static checker warning.
The only caller which might care is cffrml_receive(), when it's checking
the frame checksum. I modified cffrml_receive() so that it never says
-EPROTO is a valid checksum.
Also this isn't ever going to be inlined so I removed the "inline".
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/caif/cffrml.c | 2 | ||||
-rw-r--r-- | net/caif/cfpkt_skbuff.c | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/net/caif/cffrml.c b/net/caif/cffrml.c index 8bc7caa..434ba85 100644 --- a/net/caif/cffrml.c +++ b/net/caif/cffrml.c @@ -84,7 +84,7 @@ static int cffrml_receive(struct cflayer *layr, struct cfpkt *pkt) u16 tmp; u16 len; u16 hdrchks; - u16 pktchks; + int pktchks; struct cffrml *this; this = container_obj(layr); diff --git a/net/caif/cfpkt_skbuff.c b/net/caif/cfpkt_skbuff.c index 1be0b52..f6c3b21 100644 --- a/net/caif/cfpkt_skbuff.c +++ b/net/caif/cfpkt_skbuff.c @@ -255,9 +255,9 @@ inline u16 cfpkt_getlen(struct cfpkt *pkt) return skb->len; } -inline u16 cfpkt_iterate(struct cfpkt *pkt, - u16 (*iter_func)(u16, void *, u16), - u16 data) +int cfpkt_iterate(struct cfpkt *pkt, + u16 (*iter_func)(u16, void *, u16), + u16 data) { /* * Don't care about the performance hit of linearizing, |