X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=kernel%2Fcred.c;h=2c24870c55d1279995379980766dd792f8671ebd;hb=0d2daf5cc858bd9305bae187310a1dabaad0a2db;hp=19d3ccce3d4d7e5d6d20c47b07c96408ab8dd87d;hpb=32bd7eb5a7f4596c8440dd9440322fe9e686634d;p=safe%2Fjmp%2Flinux-2.6 diff --git a/kernel/cred.c b/kernel/cred.c index 19d3ccc..2c24870 100644 --- a/kernel/cred.c +++ b/kernel/cred.c @@ -10,6 +10,7 @@ */ #include #include +#include #include #include #include @@ -396,6 +397,8 @@ struct cred *prepare_usermodehelper_creds(void) error: put_cred(new); + return NULL; + free_tgcred: #ifdef CONFIG_KEYS kfree(tgcred); @@ -519,8 +522,6 @@ int commit_creds(struct cred *new) #endif BUG_ON(atomic_read(&new->usage) < 1); - security_commit_creds(new, old); - get_cred(new); /* we will require a ref for the subj creds too */ /* dumpability changes */ @@ -787,8 +788,6 @@ bool creds_are_invalid(const struct cred *cred) { if (cred->magic != CRED_MAGIC) return true; - if (atomic_read(&cred->usage) < atomic_read(&cred->subscribers)) - return true; #ifdef CONFIG_SECURITY_SELINUX if (selinux_is_enabled()) { if ((unsigned long) cred->security < PAGE_SIZE)