summaryrefslogtreecommitdiffstatshomepage
path: root/unix/main.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-04-08 14:08:14 +0000
committerDamien George <damien.p.george@gmail.com>2014-04-08 14:08:14 +0000
commit26cf55ae05658c8a47719d46d48df8c9751108b5 (patch)
treebe29a2ba6c82b486b21e6a7efb98f22eb44645af /unix/main.c
parent094ebef259e86dfc0f1f3c1b493d81e5e8b1b6c4 (diff)
downloadmicropython-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.c6
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);
+}