[PATCH 4/5] UBUNTU: SAUCE: AppArmor: Fix refcounting bug causing leak of creds

Stefan Bader stefan.bader at canonical.com
Wed Nov 11 13:24:01 UTC 2009


Sounds and looks sensible. Also implications sound SRU worthy.

John Johansen wrote:
> BugLink: http://bugs.launchpad.net/bugs/479115
> 
> SRU Justification: Failure to put the cred causes a memory leak that is
> larger than the cred struct, as it leaks everything it references. This
> happens for every unconfined processes that does an exec, change_hat or
> change_profile and passes through this function.
> 
> AppArmor when doing ptrace check for domain changes, fails to drop
> the ref count on the task creds when it is unconfined.
> 
> Signed-off-by: John Johansen <john.johansen at canonical.com>

Acked-by: Stefan Bader <stefan.bader at canonical.com>

> ---
>  ubuntu/apparmor/domain.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/ubuntu/apparmor/domain.c b/ubuntu/apparmor/domain.c
> index 128e527..fe89ddc 100644
> --- a/ubuntu/apparmor/domain.c
> +++ b/ubuntu/apparmor/domain.c
> @@ -65,9 +65,10 @@ static int aa_may_change_ptraced_domain(struct task_struct *task,
>  	rcu_read_unlock();
>  
>  	if (!tracerp)
> -		return error;
> +		goto out;
>  
>  	error = aa_may_ptrace(tracer, tracerp, to_profile, PTRACE_MODE_ATTACH);
> +out:
>  	put_cred(cred);
>  
>  	return error;





More information about the kernel-team mailing list