diff options
Diffstat (limited to 'kernel/cred.c')
-rw-r--r-- | kernel/cred.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/cred.c b/kernel/cred.c index 1b1129d0cce8..62af1816c235 100644 --- a/kernel/cred.c +++ b/kernel/cred.c | |||
@@ -10,6 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
12 | #include <linux/cred.h> | 12 | #include <linux/cred.h> |
13 | #include <linux/slab.h> | ||
13 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
14 | #include <linux/key.h> | 15 | #include <linux/key.h> |
15 | #include <linux/keyctl.h> | 16 | #include <linux/keyctl.h> |
@@ -397,6 +398,8 @@ struct cred *prepare_usermodehelper_creds(void) | |||
397 | 398 | ||
398 | error: | 399 | error: |
399 | put_cred(new); | 400 | put_cred(new); |
401 | return NULL; | ||
402 | |||
400 | free_tgcred: | 403 | free_tgcred: |
401 | #ifdef CONFIG_KEYS | 404 | #ifdef CONFIG_KEYS |
402 | kfree(tgcred); | 405 | kfree(tgcred); |
@@ -790,8 +793,6 @@ bool creds_are_invalid(const struct cred *cred) | |||
790 | { | 793 | { |
791 | if (cred->magic != CRED_MAGIC) | 794 | if (cred->magic != CRED_MAGIC) |
792 | return true; | 795 | return true; |
793 | if (atomic_read(&cred->usage) < atomic_read(&cred->subscribers)) | ||
794 | return true; | ||
795 | #ifdef CONFIG_SECURITY_SELINUX | 796 | #ifdef CONFIG_SECURITY_SELINUX |
796 | if (selinux_is_enabled()) { | 797 | if (selinux_is_enabled()) { |
797 | if ((unsigned long) cred->security < PAGE_SIZE) | 798 | if ((unsigned long) cred->security < PAGE_SIZE) |