diff options
author | Damien George <damien.p.george@gmail.com> | 2014-04-08 14:08:14 +0000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-04-08 14:08:14 +0000 |
commit | 26cf55ae05658c8a47719d46d48df8c9751108b5 (patch) | |
tree | be29a2ba6c82b486b21e6a7efb98f22eb44645af /unix/main.c | |
parent | 094ebef259e86dfc0f1f3c1b493d81e5e8b1b6c4 (diff) | |
download | micropython-26cf55ae05658c8a47719d46d48df8c9751108b5.tar.gz micropython-26cf55ae05658c8a47719d46d48df8c9751108b5.zip |
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 'unix/main.c')
-rw-r--r-- | unix/main.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/unix/main.c b/unix/main.c index 11df4cadf2..8065663011 100644 --- a/unix/main.c +++ b/unix/main.c @@ -293,6 +293,7 @@ void pre_process_options(int argc, char **argv) { } int main(int argc, char **argv) { + nlr_jump(0); volatile int stack_dummy; stack_top = (void*)&stack_dummy; @@ -447,3 +448,8 @@ int DEBUG_printf(const char *fmt, ...) { va_end(ap); return ret; } + +void nlr_jump_fail(void *val) { + printf("FATAL: uncaught NLR %p\n", val); + exit(1); +} |