diff options
author | Oleg Nesterov <oleg@redhat.com> | 2010-06-03 23:34:09 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-07-05 11:16:07 -0700 |
commit | e1b8e9499b5cfcddd229a400084a211efead9239 (patch) | |
tree | cb896b186fa0cd96406e00775d9401cc659fd667 /include | |
parent | e26e13a7e153ae645a430c4983241b0e9987d5cf (diff) | |
download | lwn-e1b8e9499b5cfcddd229a400084a211efead9239.tar.gz lwn-e1b8e9499b5cfcddd229a400084a211efead9239.zip |
tracing: Fix null pointer deref with SEND_SIG_FORCED
commit b9b76dfaac6fa2c289ee8a005be637afd2da7e2f upstream.
BUG: unable to handle kernel NULL pointer dereference at
0000000000000006
IP: [<ffffffff8107bd37>] ftrace_raw_event_signal_generate+0x87/0x140
TP_STORE_SIGINFO() forgets about SEND_SIG_FORCED, fix.
We should probably export is_si_special() and change TP_STORE_SIGINFO()
to use it in the longer term.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Roland McGrath <roland@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jason Baron <jbaron@redhat.com>
Cc: Masami Hiramatsu <mhiramat@redhat.com>
LKML-Reference: <20100603213409.GA8307@redhat.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/trace/events/signal.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/trace/events/signal.h b/include/trace/events/signal.h index a510b75ac304..32c069759012 100644 --- a/include/trace/events/signal.h +++ b/include/trace/events/signal.h @@ -10,7 +10,8 @@ #define TP_STORE_SIGINFO(__entry, info) \ do { \ - if (info == SEND_SIG_NOINFO) { \ + if (info == SEND_SIG_NOINFO || \ + info == SEND_SIG_FORCED) { \ __entry->errno = 0; \ __entry->code = SI_USER; \ } else if (info == SEND_SIG_PRIV) { \ |