diff options
author | Willem de Bruijn <willemb@google.com> | 2016-07-12 18:18:56 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-07-13 11:53:40 -0700 |
commit | f4979fcea7fd36d8e2f556abef86f80e0d5af1ba (patch) | |
tree | e44115be36c8eef0769d4defe66168635c64137a /include/net/sock.h | |
parent | 22cb99fb76fb56b38f59770fbf22be03bb796d8d (diff) | |
download | blackbird-obmc-linux-f4979fcea7fd36d8e2f556abef86f80e0d5af1ba.tar.gz blackbird-obmc-linux-f4979fcea7fd36d8e2f556abef86f80e0d5af1ba.zip |
rose: limit sk_filter trim to payload
Sockets can have a filter program attached that drops or trims
incoming packets based on the filter program return value.
Rose requires data packets to have at least ROSE_MIN_LEN bytes. It
verifies this on arrival in rose_route_frame and unconditionally pulls
the bytes in rose_recvmsg. The filter can trim packets to below this
value in-between, causing pull to fail, leaving the partial header at
the time of skb_copy_datagram_msg.
Place a lower bound on the size to which sk_filter may trim packets
by introducing sk_filter_trim_cap and call this for rose packets.
Signed-off-by: Willem de Bruijn <willemb@google.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/sock.h')
0 files changed, 0 insertions, 0 deletions