]> git.baikalelectronics.ru Git - 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)
committerDavid S. Miller <davem@davemloft.net>
Wed, 26 Apr 2017 18:59:35 +0000 (14:59 -0400)
commit1aa2224cffc86c27ca003efe97e18c2121470014
tree07bed60e50a2383e335983dc3f3c468d9ae8e1dd
parent55043d9bcf9261b37a9f13a1260c91d57c1f5103
ipv6: check raw payload size correctly in ioctl

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>
net/ipv6/raw.c