Commit 4ef848da authored by Ye Weihua's avatar Ye Weihua Committed by Zheng Zengkai
Browse files

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: default avatarYe Weihua <yeweihua4@huawei.com>
Reviewed-by: default avatarYang Jihong <yangjihong1@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parent 61263f61
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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;