X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=kernel%2Fnotifier.c;h=61d5aa5eced3466393582e4f566b63c468ea7cc3;hb=2b121bc262fa03c94e653b2d44356c2f86c1bcdc;hp=4282c0a40a57ada651b86c7dcce2389abf489448;hpb=3f9b5d4dda6d85aab33fef32e8351ddc34c81fb4;p=~andy%2Flinux 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)