summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2008-05-12 21:21:14 +0200
committerThomas Gleixner <tglx@linutronix.de>2008-05-24 01:16:38 +0200
commitbfeeeeb991cf75081e6c2f74d44ae5da05b50a94 (patch)
tree3497ab932a0e6be36e0f28fb9adb75698e243f3b
parent75d3bce2fc0a80f435fe12f2c9ed2632c8ac29e4 (diff)
downloadlinux-0-day-bfeeeeb991cf75081e6c2f74d44ae5da05b50a94.tar.gz
linux-0-day-bfeeeeb991cf75081e6c2f74d44ae5da05b50a94.tar.xz
stacktrace: don't crash on invalid stack trace structs
This patch makes the stacktrace printout code \warn when the entries pointer is unset rather than crashing when trying to access it in an attempt to make it a bit more robust. I was saving a stacktrace into an skb and forgot to copy it across skb copies... I have since fixed the code, but it would have been easier had the kernel not crashed in an interrupt. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--kernel/stacktrace.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/stacktrace.c b/kernel/stacktrace.c
index b71816e47a301..0914d0cbc83c9 100644
--- a/kernel/stacktrace.c
+++ b/kernel/stacktrace.c
@@ -13,6 +13,9 @@ void print_stack_trace(struct stack_trace *trace, int spaces)
{
int i, j;
+ if (WARN_ON(!trace->entries))
+ return;
+
for (i = 0; i < trace->nr_entries; i++) {
unsigned long ip = trace->entries[i];