lkml.org 
[lkml]   [2020]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 124/312] xfrm_user: propagate sec ctx allocation errors
    Date
    From: Mathias Krause <minipli@googlemail.com>

    commit 2f30ea5090cbc57ea573cdc66421264b3de3fb0a upstream.

    When we fail to attach the security context in xfrm_state_construct()
    we'll return 0 as error value which, in turn, will wrongly claim success
    to userland when, in fact, we won't be adding / updating the XFRM state.

    This is a regression introduced by commit fd21150a0fe1 ("[XFRM] netlink:
    Inline attach_encap_tmpl(), attach_sec_ctx(), and attach_one_addr()").

    Fix it by propagating the error returned by security_xfrm_state_alloc()
    in this case.

    Fixes: fd21150a0fe1 ("[XFRM] netlink: Inline attach_encap_tmpl()...")
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Cc: Thomas Graf <tgraf@suug.ch>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    net/xfrm/xfrm_user.c | 9 ++++++---
    1 file changed, 6 insertions(+), 3 deletions(-)

    --- a/net/xfrm/xfrm_user.c
    +++ b/net/xfrm/xfrm_user.c
    @@ -609,9 +609,12 @@ static struct xfrm_state *xfrm_state_con
    if (err)
    goto error;

    - if (attrs[XFRMA_SEC_CTX] &&
    - security_xfrm_state_alloc(x, nla_data(attrs[XFRMA_SEC_CTX])))
    - goto error;
    + if (attrs[XFRMA_SEC_CTX]) {
    + err = security_xfrm_state_alloc(x,
    + nla_data(attrs[XFRMA_SEC_CTX]));
    + if (err)
    + goto error;
    + }

    if ((err = xfrm_alloc_replay_state_esn(&x->replay_esn, &x->preplay_esn,
    attrs[XFRMA_REPLAY_ESN_VAL])))

    \
     
     \ /
      Last update: 2020-05-08 15:22    [W:2.468 / U:0.272 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site