[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20170725.100137.1154747980323058090.davem@davemloft.net>
Date: Tue, 25 Jul 2017 10:01:37 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: pabeni@...hat.com
Cc: netdev@...r.kernel.org, edumazet@...gle.com, paul@...l-moore.com
Subject: Re: [PATCH net] udp: preserve head state for IP_CMSG_PASSSEC
From: Paolo Abeni <pabeni@...hat.com>
Date: Tue, 25 Jul 2017 17:57:47 +0200
> 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@...l-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@...hat.com>
> Tested-by: Paul Moore <paul@...l-moore.com>
Applied, thanks for tracking this down and fixing it.
Powered by blists - more mailing lists