lkml.org 
[lkml]   [2022]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 14/86] af_key: Do not call xfrm_probe_algs in parallel
    Date
    From: Herbert Xu <herbert@gondor.apana.org.au>

    [ Upstream commit ba953a9d89a00c078b85f4b190bc1dde66fe16b5 ]

    When namespace support was added to xfrm/afkey, it caused the
    previously single-threaded call to xfrm_probe_algs to become
    multi-threaded. This is buggy and needs to be fixed with a mutex.

    Reported-by: Abhishek Shah <abhishek.shah@columbia.edu>
    Fixes: 283bc9f35bbb ("xfrm: Namespacify xfrm state/policy locks")
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/key/af_key.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/net/key/af_key.c b/net/key/af_key.c
    index 2aa16a171285b..05e2710988883 100644
    --- a/net/key/af_key.c
    +++ b/net/key/af_key.c
    @@ -1701,9 +1701,12 @@ static int pfkey_register(struct sock *sk, struct sk_buff *skb, const struct sad
    pfk->registered |= (1<<hdr->sadb_msg_satype);
    }

    + mutex_lock(&pfkey_mutex);
    xfrm_probe_algs();

    supp_skb = compose_sadb_supported(hdr, GFP_KERNEL | __GFP_ZERO);
    + mutex_unlock(&pfkey_mutex);
    +
    if (!supp_skb) {
    if (hdr->sadb_msg_satype != SADB_SATYPE_UNSPEC)
    pfk->registered &= ~(1<<hdr->sadb_msg_satype);
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-29 13:25    [W:2.315 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site