diff options
Diffstat (limited to 'kernel/notifier.c')
| -rw-r--r-- | kernel/notifier.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/notifier.c b/kernel/notifier.c index 4282c0a40a5..61d5aa5eced 100644 --- a/kernel/notifier.c +++ b/kernel/notifier.c @@ -82,6 +82,14 @@ static int __kprobes notifier_call_chain(struct notifier_block **nl,  	while (nb && nr_to_call) {  		next_nb = rcu_dereference(nb->next); + +#ifdef CONFIG_DEBUG_NOTIFIERS +		if (unlikely(!func_ptr_is_kernel_text(nb->notifier_call))) { +			WARN(1, "Invalid notifier called!"); +			nb = next_nb; +			continue; +		} +#endif  		ret = nb->notifier_call(nb, val, v);  		if (nr_calls)  |