Re: [PATCH] fix freeing user_struct in user cache

From: Serge E. Hallyn
Date: Fri Dec 31 2010 - 09:24:47 EST


Quoting Hillf Danton (dhillf@xxxxxxxxx):
> When racing on adding into user cache, the new allocated from mm slab
> is freed without putting user namespace.
>
> Since the user namespace is already operated by getting, putting has
> to be issued.
>
> Signed-off-by: Hillf Danton <dhillf@xxxxxxxxx>

which was previously

> Acked-by: Serge Hallyn <serge@xxxxxxxxxx>

thanks again, Hillf.

> ---
>
> --- a/kernel/user.c 2010-11-01 19:54:12.000000000 +0800
> +++ b/kernel/user.c 2010-12-23 20:42:00.000000000 +0800
> @@ -158,6 +158,7 @@ struct user_struct *alloc_uid(struct use
> spin_lock_irq(&uidhash_lock);
> up = uid_hash_find(uid, hashent);
> if (up) {
> + put_user_ns(ns);
> key_put(new->uid_keyring);
> key_put(new->session_keyring);
> kmem_cache_free(uid_cachep, new);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/