summaryrefslogtreecommitdiff
path: root/security
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2017-09-21 13:57:41 -0700
committerBen Hutchings <ben@decadent.org.uk>2018-01-01 20:50:51 +0000
commit9e9039264036f9d1213920150f7db680c385aaf8 (patch)
tree2418ba29c0a18adb5a582141fd48f0531d7efb53 /security
parent3b9c8a06857e48471028f8446176ff8664911626 (diff)
downloadlinux-9e9039264036f9d1213920150f7db680c385aaf8.tar.gz
linux-9e9039264036f9d1213920150f7db680c385aaf8.tar.bz2
linux-9e9039264036f9d1213920150f7db680c385aaf8.zip
KEYS: don't revoke uninstantiated key in request_key_auth_new()
commit f7b48cf08fa63a68b59c2894806ee478216d7f91 upstream. If key_instantiate_and_link() were to fail (which fortunately isn't possible currently), the call to key_revoke(authkey) would crash with a NULL pointer dereference in request_key_auth_revoke() because the key has not yet been instantiated. Fix this by removing the call to key_revoke(). key_put() is sufficient, as it's not possible for an uninstantiated authkey to have been used for anything yet. Fixes: b5f545c880a2 ("[PATCH] keys: Permit running process to instantiate keys") Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'security')
-rw-r--r--security/keys/request_key_auth.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/security/keys/request_key_auth.c b/security/keys/request_key_auth.c
index b21b981dd414..40a06a30a9cf 100644
--- a/security/keys/request_key_auth.c
+++ b/security/keys/request_key_auth.c
@@ -206,7 +206,6 @@ struct key *request_key_auth_new(struct key *target, const void *callout_info,
return authkey;
error_put_authkey:
- key_revoke(authkey);
key_put(authkey);
error_free_rka:
free_request_key_auth(rka);