提交 f3019115 编写于 作者: C Cheng Jian 提交者: Xie XiuQi

livepatch/arm64: use WARN_ON() for arch_klp_unpatch_func errors

hulk inclusion
category: bugfix
bugzilla: 5507
CVE: NA

----------------------------------------------

BUG_ON will cause the kernel to crash, using WARN_ON instead.
Signed-off-by: NCheng Jian <cj.chengjian@huawei.com>
Reviewed-by: NHanjun Guo <guohanjun@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 549c5bb2
...@@ -262,8 +262,11 @@ void arch_klp_unpatch_func(struct klp_func *func) ...@@ -262,8 +262,11 @@ void arch_klp_unpatch_func(struct klp_func *func)
int i; int i;
u32 insns[LJMP_INSN_SIZE]; u32 insns[LJMP_INSN_SIZE];
#endif #endif
func_node = klp_find_func_node(func->old_addr); func_node = klp_find_func_node(func->old_addr);
BUG_ON(!func_node); if (WARN_ON(!func_node))
return;
pc = func_node->old_addr; pc = func_node->old_addr;
if (list_is_singular(&func_node->func_stack)) { if (list_is_singular(&func_node->func_stack)) {
#ifdef CONFIG_ARM64_MODULE_PLTS #ifdef CONFIG_ARM64_MODULE_PLTS
...@@ -288,7 +291,9 @@ void arch_klp_unpatch_func(struct klp_func *func) ...@@ -288,7 +291,9 @@ void arch_klp_unpatch_func(struct klp_func *func)
list_del_rcu(&func->stack_node); list_del_rcu(&func->stack_node);
next_func = list_first_or_null_rcu(&func_node->func_stack, next_func = list_first_or_null_rcu(&func_node->func_stack,
struct klp_func, stack_node); struct klp_func, stack_node);
BUG_ON(!next_func); if (WARN_ON(!next_func))
return;
new_addr = (unsigned long)next_func->new_func; new_addr = (unsigned long)next_func->new_func;
#ifdef CONFIG_ARM64_MODULE_PLTS #ifdef CONFIG_ARM64_MODULE_PLTS
if (offset_in_range(pc, new_addr, SZ_128M)) { if (offset_in_range(pc, new_addr, SZ_128M)) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册