aboutsummaryrefslogtreecommitdiff
path: root/py/nlrthumb.S
diff options
context:
space:
mode:
authorDamien George2014-04-08 14:08:14 +0000
committerDamien George2014-04-08 14:08:14 +0000
commit26cf55ae05658c8a47719d46d48df8c9751108b5 (patch)
treebe29a2ba6c82b486b21e6a7efb98f22eb44645af /py/nlrthumb.S
parent094ebef259e86dfc0f1f3c1b493d81e5e8b1b6c4 (diff)
Add a check for NULL nlr_top in nlr_jump.
If no nlr_buf has been pushed, and an nlr_jump is called, then control is transferred to nlr_jump_fail (which should bail out with a fatal error).
Diffstat (limited to 'py/nlrthumb.S')
-rw-r--r--py/nlrthumb.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/py/nlrthumb.S b/py/nlrthumb.S
index 8c6eb9552..6a0c7ee1e 100644
--- a/py/nlrthumb.S
+++ b/py/nlrthumb.S
@@ -60,6 +60,8 @@ nlr_pop:
nlr_jump:
ldr r3, .L2 @ load addr of nlr_top
ldr r2, [r3] @ load nlr_top
+ cmp r2, #0 @ test if nlr_top is NULL
+ beq nlr_jump_fail @ if nlr_top is NULL, transfer control to nlr_jump_fail
str r0, [r2, #4] @ store return value
ldr r0, [r2] @ load prev nlr_buf
str r0, [r3] @ store prev nol_buf into nlr_top (to unlink list)