summaryrefslogtreecommitdiff
path: root/supervisor/shared/stack.c
diff options
context:
space:
mode:
Diffstat (limited to 'supervisor/shared/stack.c')
-rwxr-xr-xsupervisor/shared/stack.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/supervisor/shared/stack.c b/supervisor/shared/stack.c
index 8f4da4ce6..71e239c0a 100755
--- a/supervisor/shared/stack.c
+++ b/supervisor/shared/stack.c
@@ -29,6 +29,7 @@
#include "py/mpconfig.h"
#include "py/runtime.h"
#include "supervisor/cpu.h"
+#include "supervisor/shared/safe_mode.h"
extern uint32_t _estack;
@@ -38,8 +39,6 @@ supervisor_allocation* stack_alloc = NULL;
#define EXCEPTION_STACK_SIZE 1024
-#define STACK_CANARY_VALUE 0x017829ef
-
void allocate_stack(void) {
mp_uint_t regs[10];
mp_uint_t sp = cpu_get_regs_and_sp(regs);
@@ -62,9 +61,7 @@ inline bool stack_ok(void) {
inline void assert_heap_ok(void) {
if (!stack_ok()) {
- asm("nop");
- while(true) {}
- mp_raise_RuntimeError(translate("Stack clobbered heap."));
+ reset_into_safe_mode(HEAP_OVERWRITTEN);
}
}