Re: [2.6 patch] kprobe_exceptions_notify(): fix NULL dereference

Ananth N Mavinakayanahalli
2007-10-29T05:27:19Z

On Sat, Oct 27, 2007 at 04:19:14PM +0200, Adrian Bunk wrote:
> This patch fixes later NULL dereferences spotted by the Coverity
> checker.
>
> Signed-off-by: Adrian Bunk <bunk@kernel.org>

NACK... see below

> ---
>
> BTW: The avr32 and s390 versions of kprobe_exceptions_notify() are
> not touched since they don't contain this check.
>
> arch/ia64/kernel/kprobes.c | 2 +-
> arch/powerpc/kernel/kprobes.c | 2 +-
> arch/sparc64/kernel/kprobes.c | 2 +-
> arch/x86/kernel/kprobes_32.c | 2 +-
> arch/x86/kernel/kprobes_64.c | 2 +-
> 5 files changed, 5 insertions(+), 5 deletions(-)
>
> b6f1241ee20dd22210f48b4100bc5055315f3808
> diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c
> index 5fd65d8..3663dfb 100644
> --- a/arch/ia64/kernel/kprobes.c
> +++ b/arch/ia64/kernel/kprobes.c
> @@ -886,11 +886,11 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self,
> unsigned long val, void *data)
> {
> struct die_args *args = (struct die_args *)data;
> int ret = NOTIFY_DONE;
>
> - if (args->regs && user_mode(args->regs))
> + if (args->regs || user_mode(args->regs))

This change is incorrect as you return if args->regs != NULL leading to
a sure system crash.

Ananth