From 4ef848da3446883d45673ddca1bdff5d99f4ae9f Mon Sep 17 00:00:00 2001 From: Ye Weihua Date: Fri, 26 Nov 2021 16:26:48 +0800 Subject: [PATCH] jump_label: skip resource release if jump label is not relocated hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I4IGQ2 CVE: NA ------------------------------- Before a module is deleted, the kernel traverses the jump_label section to release resources applied by each jump entry. Common modules apply for these resources before module initialization, but livepatch modules apply during livepatch redirection. Therefore, when a livepatch module fails to be inserted, the resources to be applied by jump_label are not applied. As a result, a panic occurs when a null pointer is accessed during resource release. To solve the this problem, skip resource release if jump label is not relocated. Signed-off-by: Ye Weihua Reviewed-by: Yang Jihong Signed-off-by: Zheng Zengkai --- kernel/jump_label.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/jump_label.c b/kernel/jump_label.c index 282d81eb5aa4..7470cdc432a0 100644 --- a/kernel/jump_label.c +++ b/kernel/jump_label.c @@ -695,6 +695,9 @@ static void jump_label_del_module(struct module *mod) struct static_key *key = NULL; struct static_key_mod *jlm, **prev; + if (unlikely(!mod_klp_rel_completed(mod))) + return; + for (iter = iter_start; iter < iter_stop; iter++) { if (jump_entry_key(iter) == key) continue; -- GitLab