The patch titled cred: fix memory and refcount leaks upon security_prepare_creds() failure has been removed from the -mm tree. Its filename was cred-fix-memory-and-refcount-leaks-upon-security_prepare_creds-failure.patch This patch was dropped because it was merged into mainline or a subsystem tree The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: cred: fix memory and refcount leaks upon security_prepare_creds() failure From: Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> In prepare_kernel_cred() since 2.6.29, put_cred(new) is called without assigning new->usage when security_prepare_creds() returned an error. As a result, memory for new and refcount for new->{user,group_info,tgcred} are leaked because put_cred(new) won't call __put_cred() unless old->usage == 1. Fix these leaks by assigning new->usage (and new->subscribers which was added in 2.6.32) before calling security_prepare_creds(). Signed-off-by: Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> Signed-off-by: David Howells <dhowells@xxxxxxxxxx> Cc: James Morris <jmorris@xxxxxxxxx> Cc: <stable@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- kernel/cred.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff -puN kernel/cred.c~cred-fix-memory-and-refcount-leaks-upon-security_prepare_creds-failure kernel/cred.c --- a/kernel/cred.c~cred-fix-memory-and-refcount-leaks-upon-security_prepare_creds-failure +++ a/kernel/cred.c @@ -657,6 +657,8 @@ struct cred *prepare_kernel_cred(struct validate_creds(old); *new = *old; + atomic_set(&new->usage, 1); + set_cred_subscribers(new, 0); get_uid(new->user); get_group_info(new->group_info); @@ -674,8 +676,6 @@ struct cred *prepare_kernel_cred(struct if (security_prepare_creds(new, old, GFP_KERNEL) < 0) goto error; - atomic_set(&new->usage, 1); - set_cred_subscribers(new, 0); put_cred(old); validate_creds(new); return new; _ Patches currently in -mm which might be from penguin-kernel@xxxxxxxxxxxxxxxxxxx are -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html