Re: [PATCH v2] audit,module: restore audit logging in load failure case

From: Petr Pavlu
Date: Thu Mar 20 2025 - 05:23:05 EST


On 3/17/25 20:57, Richard Guy Briggs wrote:
> The move of the module sanity check to earlier skipped the audit logging
> call in the case of failure and to a place where the previously used
> context is unavailable.
>
> Add an audit logging call for the module loading failure case and get
> the module name when possible.
>
> Link: https://issues.redhat.com/browse/RHEL-52839
> Fixes: 02da2cbab452 ("module: move check_modinfo() early to early_mod_check()")
> Signed-off-by: Richard Guy Briggs <rgb@xxxxxxxxxx>

The change looks reasonable to me from the modules perspective.

Nit: Viewing the linked address requires a login, so I'm not sure it's
appropriate for the commit message.

[...]

> diff --git a/kernel/module/main.c b/kernel/module/main.c
> index 1fb9ad289a6f..efa62ace1b23 100644
> --- a/kernel/module/main.c
> +++ b/kernel/module/main.c
> @@ -3346,7 +3346,7 @@ static int load_module(struct load_info *info, const char __user *uargs,
>
> module_allocated = true;
>
> - audit_log_kern_module(mod->name);
> + audit_log_kern_module(info->name);
>
> /* Reserve our place in the list. */
> err = add_unformed_module(mod);
> @@ -3506,8 +3506,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
> * failures once the proper module was allocated and
> * before that.
> */
> - if (!module_allocated)
> + if (!module_allocated) {
> + audit_log_kern_module(info->name ? info->name : "(unavailable)");
> mod_stat_bump_becoming(info, flags);
> + }
> free_copy(info, flags);
> return err;
> }

Nit:
audit_log_kern_module(info->name ? info->name : "(unavailable)");
->
audit_log_kern_module(info->name ?: "(unavailable)");

--
Thanks,
Petr