On Tue, 2026-07-07 at 11:13 -0700, Ryan Lee via AppArmor wrote:

Acked-by: Georgia Garcia <[email protected]>

> Signed-off-by: Ryan Lee <[email protected]>
> ---
>  security/apparmor/lsm.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
> index d158c5108f0e..a30a17afe4b3 100644
> --- a/security/apparmor/lsm.c
> +++ b/security/apparmor/lsm.c
> @@ -786,19 +786,20 @@ static int apparmor_getselfattr(unsigned int attr, 
> struct lsm_ctx __user *lx,
>       int error = -ENOENT;
>       struct aa_task_ctx *ctx = task_ctx(current);
>       struct aa_label *label = NULL;
> +     bool needput = false;
>       char *value = NULL;
>  
>       switch (attr) {
>       case LSM_ATTR_CURRENT:
> -             label = aa_get_newest_label(cred_label(current_cred()));
> +             label = aa_get_newest_cred_label_condref(current_cred(), 
> &needput);
>               break;
>       case LSM_ATTR_PREV:
>               if (ctx->previous)
> -                     label = aa_get_newest_label(ctx->previous);
> +                     label = aa_get_newest_label_condref(ctx->previous, 
> &needput);
>               break;
>       case LSM_ATTR_EXEC:
>               if (ctx->onexec)
> -                     label = aa_get_newest_label(ctx->onexec);
> +                     label = aa_get_newest_label_condref(ctx->onexec, 
> &needput);
>               break;
>       default:
>               error = -EOPNOTSUPP;
> @@ -813,7 +814,7 @@ static int apparmor_getselfattr(unsigned int attr, struct 
> lsm_ctx __user *lx,
>               kfree(value);
>       }
>  
> -     aa_put_label(label);
> +     aa_put_label_condref(label, needput);
>  
>       if (error < 0)
>               return error;


Reply via email to