Subject: Re: [PATCH] selinux: add a skb_owned_by() hook

From: Paul Moore <[email-masked]>
Date: Tue, 09 Apr 2013 08:06:50 -0400

On Monday, April 08, 2013 08:58:11 PM Eric Dumazet wrote:
> From: Eric Dumazet <[email-masked]>
> 
> Commit 90ba9b1986b5ac (tcp: tcp_make_synack() can use alloc_skb())
> broke certain SELinux/NetLabel configurations by no longer correctly
> assigning the sock to the outgoing SYNACK packet.
> 
> Cost of atomic operations on the LISTEN socket is quite big,
> and we would like it to happen only if really needed.
> 
> This patch introduces a new security_ops->skb_owned_by() method,
> that is a void operation unless selinux is active.
> 
> Reported-by: Miroslav Vadkerti <[email-masked]>
> Diagnosed-by: Paul Moore <[email-masked]>
> Signed-off-by: Eric Dumazet <[email-masked]>
> Cc: "David S. Miller" <[email-masked]>
> Cc: [email-masked]
> ---
>  include/linux/security.h |    8 ++++++++
>  net/ipv4/tcp_output.c    |    1 +
>  security/capability.c    |    6 ++++++
>  security/security.c      |    5 +++++
>  security/selinux/hooks.c |    7 +++++++
>  5 files changed, 27 insertions(+)

I've already voiced my objections to this approach, but I've just tested it 
and it does resolve the regression in the network stack.

Tested-by: Paul Moore <[email-masked]>
Acked-by: Paul Moore <[email-masked]>

-- 
paul moore
security and virtualization @ redhat