Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1734379 > unrolled thread
| Started by | Eric Biggers <ebiggers3@gmail.com> |
|---|---|
| First post | 2017-09-18 20:40 +0200 |
| Last post | 2017-09-21 22:40 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH] KEYS: fix cred refcount leak in request_key_auth_new() Eric Biggers <ebiggers3@gmail.com> - 2017-09-18 20:40 +0200
Re: [PATCH] KEYS: fix cred refcount leak in request_key_auth_new() David Howells <dhowells@redhat.com> - 2017-09-19 17:50 +0200
Re: [PATCH] KEYS: fix cred refcount leak in request_key_auth_new() Eric Biggers <ebiggers3@gmail.com> - 2017-09-21 22:40 +0200
| From | Eric Biggers <ebiggers3@gmail.com> |
|---|---|
| Date | 2017-09-18 20:40 +0200 |
| Subject | [PATCH] KEYS: fix cred refcount leak in request_key_auth_new() |
| Message-ID | <ur97A-1vB-27@gated-at.bofh.it> |
From: Eric Biggers <ebiggers@google.com>
In request_key_auth_new(), if alloc_key() or key_instantiate_and_link()
were to fail, we would leak a reference to the 'struct cred'. Currently
this can only happen if alloc_key() fails to to allocate memory. But it
still should be fixed, as it is a more severe bug waiting to happen.
Fixes: d84f4f992cbd ("CRED: Inaugurate COW credentials")
Signed-off-by: Eric Biggers <ebiggers@google.com>
---
security/keys/request_key_auth.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/security/keys/request_key_auth.c b/security/keys/request_key_auth.c
index afe9d22ab361..f2f29f13ecff 100644
--- a/security/keys/request_key_auth.c
+++ b/security/keys/request_key_auth.c
@@ -227,6 +227,7 @@ struct key *request_key_auth_new(struct key *target, const void *callout_info,
key_revoke(authkey);
key_put(authkey);
error_alloc:
+ put_cred(rka->cred);
key_put(rka->target_key);
key_put(rka->dest_keyring);
kfree(rka->callout_info);
--
2.14.1.690.gbb1197296e-goog
[toc] | [next] | [standalone]
| From | David Howells <dhowells@redhat.com> |
|---|---|
| Date | 2017-09-19 17:50 +0200 |
| Message-ID | <ursWB-7h8-5@gated-at.bofh.it> |
| In reply to | #1734379 |
Eric Biggers <ebiggers3@gmail.com> wrote: > In request_key_auth_new(), if alloc_key() or key_instantiate_and_link() > were to fail, we would leak a reference to the 'struct cred'. Currently > this can only happen if alloc_key() fails to to allocate memory. But it > still should be fixed, as it is a more severe bug waiting to happen. It might be better to combine request_key_auth_destroy() and the error path that you're altering in request_key_auth_new() by pulling it into a separate function. David
[toc] | [prev] | [next] | [standalone]
| From | Eric Biggers <ebiggers3@gmail.com> |
|---|---|
| Date | 2017-09-21 22:40 +0200 |
| Message-ID | <usgql-5CD-5@gated-at.bofh.it> |
| In reply to | #1735023 |
On Tue, Sep 19, 2017 at 04:46:08PM +0100, David Howells wrote: > Eric Biggers <ebiggers3@gmail.com> wrote: > > > In request_key_auth_new(), if alloc_key() or key_instantiate_and_link() > > were to fail, we would leak a reference to the 'struct cred'. Currently > > this can only happen if alloc_key() fails to to allocate memory. But it > > still should be fixed, as it is a more severe bug waiting to happen. > > It might be better to combine request_key_auth_destroy() and the error path > that you're altering in request_key_auth_new() by pulling it into a separate > function. > > David Agreed, I'll do that. Eric
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web