stacktrace: don't crash on invalid stack trace structs
authorJohannes Berg <johannes@sipsolutions.net>
Mon, 12 May 2008 19:21:14 +0000 (21:21 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 23 May 2008 23:16:38 +0000 (01:16 +0200)
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>
kernel/stacktrace.c

index b71816e47a3019ed3d55f0a7ceb5cc179fa32370..0914d0cbc83c9f48496b927602d87e6293d4530a 100644 (file)
@@ -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];