diff options
| author | Damien George | 2014-04-08 14:08:14 +0000 |
|---|---|---|
| committer | Damien George | 2014-04-08 14:08:14 +0000 |
| commit | 26cf55ae05658c8a47719d46d48df8c9751108b5 (patch) | |
| tree | be29a2ba6c82b486b21e6a7efb98f22eb44645af /py/nlrthumb.S | |
| parent | 094ebef259e86dfc0f1f3c1b493d81e5e8b1b6c4 (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.S | 2 |
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) |
