From: Mariusz Kozlowski Date: Mon, 8 Nov 2010 11:58:45 +0000 (+0000) Subject: net: Fix header size check for GSO case in recvmsg (af_packet) X-Git-Tag: v2.6.36.3~76 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=8cd7b4be422ff636fb4359a77c437a214c6f272f;p=karo-tx-linux.git net: Fix header size check for GSO case in recvmsg (af_packet) [ Upstream commit 1f18b7176e2e41fada24584ce3c80e9abfaca52b] Parameter 'len' is size_t type so it will never get negative. Signed-off-by: Mariusz Kozlowski Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 9a17f28b1253..c615b0f73b92 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -1610,9 +1610,11 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock, err = -EINVAL; vnet_hdr_len = sizeof(vnet_hdr); - if ((len -= vnet_hdr_len) < 0) + if (len < vnet_hdr_len) goto out_free; + len -= vnet_hdr_len; + if (skb_is_gso(skb)) { struct skb_shared_info *sinfo = skb_shinfo(skb);