lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 07 Oct 2019 10:25:44 +0200 From: Peter Zijlstra <peterz@...radead.org> To: x86@...nel.org Cc: peterz@...radead.org, linux-kernel@...r.kernel.org, rostedt@...dmis.org, mhiramat@...nel.org, bristot@...hat.com, jbaron@...mai.com, torvalds@...ux-foundation.org, tglx@...utronix.de, mingo@...nel.org, namit@...are.com, hpa@...or.com, luto@...nel.org, ard.biesheuvel@...aro.org, Yonghong Song <yhs@...com>, Alexei Starovoitov <ast@...nel.org>, Daniel Borkmann <daniel@...earbox.net>, Song Liu <songliubraving@...com>, Jessica Yu <jeyu@...nel.org>, Martin KaFai Lau <kafai@...com> Subject: [PATCH v2 3/4] module: Properly propagate MODULE_STATE_COMING failure Now that notifiers got unbroken; use the proper interface to handle notifier errors and propagate them. There were already MODULE_STATE_COMING notifiers that failed; notably: - jump_label_module_notifier() - tracepoint_module_notify() - bpf_event_notify() By propagating this error, we fix those users. Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org> Cc: Yonghong Song <yhs@...com> Cc: Alexei Starovoitov <ast@...nel.org> Cc: Daniel Borkmann <daniel@...earbox.net> Cc: Song Liu <songliubraving@...com> Cc: Jessica Yu <jeyu@...nel.org> Cc: Martin KaFai Lau <kafai@...com> --- kernel/module.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) --- a/kernel/module.c +++ b/kernel/module.c @@ -3751,9 +3751,13 @@ static int prepare_coming_module(struct if (err) return err; - blocking_notifier_call_chain(&module_notify_list, - MODULE_STATE_COMING, mod); - return 0; + err = blocking_notifier_call_chain_robust(&module_notify_list, + MODULE_STATE_COMING, MODULE_STATE_GOING, mod); + err = notifier_to_errno(err); + if (err) + klp_module_going(mod); + + return err; } static int unknown_module_param_cb(char *param, char *val, const char *modname,
Powered by blists - more mailing lists