lkml.org 
[lkml]   [2022]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 060/201] tcp/dccp: Fix a data-race around sysctl_tcp_fwmark_accept.
    Date
    From: Kuniyuki Iwashima <kuniyu@amazon.com>

    [ Upstream commit 1a0008f9df59451d0a17806c1ee1a19857032fa8 ]

    While reading sysctl_tcp_fwmark_accept, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.

    Fixes: 84f39b08d786 ("net: support marking accepting TCP sockets")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    include/net/inet_sock.h | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h
    index defd77baf74a..33344d54ad65 100644
    --- a/include/net/inet_sock.h
    +++ b/include/net/inet_sock.h
    @@ -107,7 +107,8 @@ static inline struct inet_request_sock *inet_rsk(const struct request_sock *sk)

    static inline u32 inet_request_mark(const struct sock *sk, struct sk_buff *skb)
    {
    - if (!sk->sk_mark && sock_net(sk)->ipv4.sysctl_tcp_fwmark_accept)
    + if (!sk->sk_mark &&
    + READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_fwmark_accept))
    return skb->mark;

    return sk->sk_mark;
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-07-27 19:07    [W:4.071 / U:0.208 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site