summaryrefslogtreecommitdiffstats
path: root/crypto/algboss.c
diff options
context:
space:
mode:
authorPaolo Abeni <pabeni@redhat.com>2017-07-25 17:57:47 +0200
committerDavid S. Miller <davem@davemloft.net>2017-07-25 19:00:58 +0200
commitdce4551cb2adb1ac9a30f8ab5299d614392b3cff (patch)
tree37ebe575b7c880828a938de778803ddf3f943d7d /crypto/algboss.c
parentnet: dsa: Initialize ds->cpu_port_mask earlier (diff)
downloadlinux-dce4551cb2adb1ac9a30f8ab5299d614392b3cff.tar.xz
linux-dce4551cb2adb1ac9a30f8ab5299d614392b3cff.zip
udp: preserve head state for IP_CMSG_PASSSEC
Paul Moore reported a SELinux/IP_PASSSEC regression caused by missing skb->sp at recvmsg() time. We need to preserve the skb head state to process the IP_CMSG_PASSSEC cmsg. With this commit we avoid releasing the skb head state in the BH even if a secpath is attached to the current skb, and stores the skb status (with/without head states) in the scratch area, so that we can access it at skb deallocation time, without incurring in cache-miss penalties. This also avoids misusing the skb CB for ipv6 packets, as introduced by the commit 0ddf3fb2c43d ("udp: preserve skb->dst if required for IP options processing"). Clean a bit the scratch area helpers implementation, to reduce the code differences between 32 and 64 bits build. Reported-by: Paul Moore <paul@paul-moore.com> Fixes: 0a463c78d25b ("udp: avoid a cache miss on dequeue") Fixes: 0ddf3fb2c43d ("udp: preserve skb->dst if required for IP options processing") Signed-off-by: Paolo Abeni <pabeni@redhat.com> Tested-by: Paul Moore <paul@paul-moore.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'crypto/algboss.c')
0 files changed, 0 insertions, 0 deletions