mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 06:25:52 +02:00
net/tls: prevent bad memory access in tls_is_sk_tx_device_offloaded()
[ Upstream commitb4f47f3848] Unlike '&&' operator, the '&' does not have short-circuit evaluation semantics. IOW both sides of the operator always get evaluated. Fix the wrong operator in tls_is_sk_tx_device_offloaded(), which would lead to out-of-bounds access for for non-full sockets. Fixes:4799ac81e5("tls: Add rx inline crypto offload") Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com> Reviewed-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
7cfddb81a8
commit
785833b9ee
|
|
@ -317,7 +317,7 @@ tls_validate_xmit_skb(struct sock *sk, struct net_device *dev,
|
|||
static inline bool tls_is_sk_tx_device_offloaded(struct sock *sk)
|
||||
{
|
||||
#ifdef CONFIG_SOCK_VALIDATE_XMIT
|
||||
return sk_fullsock(sk) &
|
||||
return sk_fullsock(sk) &&
|
||||
(smp_load_acquire(&sk->sk_validate_xmit_skb) ==
|
||||
&tls_validate_xmit_skb);
|
||||
#else
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user