• Eric Biggers's avatar
    KEYS: fix key refcount leak in keyctl_assume_authority() · 884bee02
    Eric Biggers authored
    In keyctl_assume_authority(), if keyctl_change_reqkey_auth() were to
    fail, we would leak the reference to the 'authkey'.  Currently this can
    only happen if prepare_creds() fails to allocate memory.  But it still
    should be fixed, as it is a more severe bug waiting to happen.
    
    This patch also moves the read of 'authkey->serial' to before the
    reference to the authkey is dropped.  Doing the read after dropping the
    reference is very fragile because it assumes we still hold another
    reference to the key.  (Which we do, in current->cred->request_key_auth,
    but there's no reason not to write it in the "obviously correct" way.)
    
    Fixes: d84f4f99 ("CRED: Inaugurate COW credentials")
    Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    884bee02
keyctl.c 42.7 KB