]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commit
ipv6: check raw payload size correctly in ioctl
authorJamie Bainbridge <jbainbri@redhat.com>
Wed, 26 Apr 2017 00:43:27 +0000 (10:43 +1000)
committerThadeu Lima de Souza Cascardo <cascardo@canonical.com>
Wed, 17 May 2017 16:39:07 +0000 (13:39 -0300)
commit62071f5d4d571cf2f6e0589b5793e19d3e72e6ab
tree7301cfd1ec7337bf07612d6f1eaab1f60899a0ac
parent8cf87ad97060da988747c1de0db36bdad2a09e29
ipv6: check raw payload size correctly in ioctl

BugLink: http://bugs.launchpad.net/bugs/1688499
[ Upstream commit 105f5528b9bbaa08b526d3405a5bcd2ff0c953c8 ]

In situations where an skb is paged, the transport header pointer and
tail pointer can be the same because the skb contents are in frags.

This results in ioctl(SIOCINQ/FIONREAD) incorrectly returning a
length of 0 when the length to receive is actually greater than zero.

skb->len is already correctly set in ip6_input_finish() with
pskb_pull(), so use skb->len as it always returns the correct result
for both linear and paged data.

Signed-off-by: Jamie Bainbridge <jbainbri@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
net/ipv6/raw.c