X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=kernel%2Fcred.c;h=2c24870c55d1279995379980766dd792f8671ebd;hb=f39d01be4c59a61a08d0cb53f615e7016b85d339;hp=fecb346404826ae3d9791650f1534ccbccc8541f;hpb=0968d0060a3c885e53d453380266c7792a55d302;p=safe%2Fjmp%2Flinux-2.6 diff --git a/kernel/cred.c b/kernel/cred.c index fecb346..2c24870 100644 --- a/kernel/cred.c +++ b/kernel/cred.c @@ -10,13 +10,13 @@ */ #include #include +#include #include #include #include #include #include #include -#include "cred-internals.h" #if 0 #define kdebug(FMT, ...) \ @@ -397,6 +397,8 @@ struct cred *prepare_usermodehelper_creds(void) error: put_cred(new); + return NULL; + free_tgcred: #ifdef CONFIG_KEYS kfree(tgcred); @@ -555,8 +557,6 @@ int commit_creds(struct cred *new) atomic_dec(&old->user->processes); alter_cred_subscribers(old, -2); - sched_switch_user(task); - /* send notifications */ if (new->uid != old->uid || new->euid != old->euid || @@ -788,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)