2010-06-03 21:36:10

by Oleg Nesterov

[permalink] [raw]
Subject: [PATCH 2.6.35/stable] TP_STORE_SIGINFO(SEND_SIG_FORCED) == OOPS

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.

Signed-off-by: Oleg Nesterov <[email protected]>
---

include/trace/events/signal.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

--- 34-rc1/include/trace/events/signal.h~TP_STORE_SIGINFO 2009-12-18 19:05:38.000000000 +0100
+++ 34-rc1/include/trace/events/signal.h 2010-06-03 23:24:07.000000000 +0200
@@ -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) { \


2010-06-08 21:07:59

by Frederic Weisbecker

[permalink] [raw]
Subject: Re: [PATCH 2.6.35/stable] TP_STORE_SIGINFO(SEND_SIG_FORCED) == OOPS

On Thu, Jun 03, 2010 at 11:34:09PM +0200, Oleg Nesterov wrote:
> 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.
>
> Signed-off-by: Oleg Nesterov <[email protected]>


Queued, thanks!

2010-06-09 05:25:37

by Oleg Nesterov

[permalink] [raw]
Subject: [tip:perf/urgent] tracing: Fix null pointer deref with SEND_SIG_FORCED

Commit-ID: b9b76dfaac6fa2c289ee8a005be637afd2da7e2f
Gitweb: http://git.kernel.org/tip/b9b76dfaac6fa2c289ee8a005be637afd2da7e2f
Author: Oleg Nesterov <[email protected]>
AuthorDate: Thu, 3 Jun 2010 23:34:09 +0200
Committer: Frederic Weisbecker <[email protected]>
CommitDate: Tue, 8 Jun 2010 23:51:32 +0200

tracing: Fix null pointer deref with SEND_SIG_FORCED

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 <[email protected]>
Acked-by: Roland McGrath <[email protected]>
Cc: Steven Rostedt <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Jason Baron <[email protected]>
Cc: Masami Hiramatsu <[email protected]>
Cc: 2.6.33.x-2.6.34.x <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by: Frederic Weisbecker <[email protected]>
---
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 814566c..17df434 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) { \