stacktrace: don't crash on invalid stack trace structs
[linux-2.6.git] / kernel / stacktrace.c
1 /*
2  * kernel/stacktrace.c
3  *
4  * Stack trace management functions
5  *
6  *  Copyright (C) 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
7  */
8 #include <linux/sched.h>
9 #include <linux/kallsyms.h>
10 #include <linux/stacktrace.h>
11
12 void print_stack_trace(struct stack_trace *trace, int spaces)
13 {
14         int i, j;
15
16         if (WARN_ON(!trace->entries))
17                 return;
18
19         for (i = 0; i < trace->nr_entries; i++) {
20                 unsigned long ip = trace->entries[i];
21
22                 for (j = 0; j < spaces + 1; j++)
23                         printk(" ");
24                 print_ip_sym(ip);
25         }
26 }
27