1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
From aa92a6ff110c9fd77f6b157fa509988d597ad2e0 Mon Sep 17 00:00:00 2001
From: Timothy Pearson <tpearson@raptorengineeringinc.com>
Date: Sat, 5 Sep 2015 19:31:03 -0500
Subject: [PATCH 029/139] lib/stack: Add stack overrun detection
Change-Id: I9a59fcb7cf221ae590a047c520e7aff99e23ecf1
Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com>
---
src/lib/stack.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/lib/stack.c b/src/lib/stack.c
index 52dd723..bebeea2 100644
--- a/src/lib/stack.c
+++ b/src/lib/stack.c
@@ -18,6 +18,7 @@ it with the version available from LANL.
*/
/* Copyright 2000, Ron Minnich, Advanced Computing Lab, LANL
* rminnich@lanl.gov
+ * Copyright (C) 2015 Timothy Pearson <tpearson@raptorengineeringinc.com>, Raptor Engineering
*/
#include <assert.h>
@@ -33,9 +34,9 @@ int checkstack(void *top_of_stack, int core)
u32 *stack = (u32 *) (top_of_stack - stack_size);
if (stack[0] != 0xDEADBEEF){
- printk(BIOS_ERR, "Stack overrun on CPU%d. "
+ printk(BIOS_ERR, "Stack overrun on CPU%d (address %p overwritten). "
"Increase stack from current %zu bytes\n",
- core, stack_size);
+ core, stack, stack_size);
BUG();
return -1;
}
--
1.9.1
|