On 2025/06/24 23:30, Maxime Bélair wrote:
> +static int apparmor_lsm_config_self_policy(u32 lsm_id, u32 op, void __user 
> *buf,
> +                                   size_t size, u32 flags)
> +{
> +     char *name = kvmalloc(size, GFP_KERNEL);
> +     long name_size;
> +     int ret;
> +
> +     if (!name)
> +             return -ENOMEM;
> +
> +     if (op != LSM_POLICY_LOAD || flags)

Huge memory leak.

> +             return -EOPNOTSUPP;
> +
> +     name_size = strncpy_from_user(name, buf, size);
> +     if (name_size < 0)

Here too. :-)

> +             return name_size;
> +
> +     ret = aa_change_profile(name, AA_CHANGE_STACK);
> +
> +     kvfree(name);
> +
> +     return ret;
> +}


Reply via email to