From 55ee7fe79c1ae876f4740f842add6c4c7f1b9bfa Mon Sep 17 00:00:00 2001 From: Tatsuhiko Kubo Date: Tue, 19 Aug 2014 16:04:48 +0900 Subject: Fix error handlings in mirb. mrb_parser_new() and mrb_generate_code() may return NULL. --- mrbgems/mruby-bin-mirb/tools/mirb/mirb.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c b/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c index 40fc5cc93..8ba73f4b0 100644 --- a/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +++ b/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c @@ -414,6 +414,10 @@ main(int argc, char **argv) /* parse code */ parser = mrb_parser_new(mrb); + if (parser == NULL) { + fputs("create parser state error\n", stderr); + break; + } parser->s = ruby_code; parser->send = ruby_code + strlen(ruby_code); parser->lineno = cxt->lineno; @@ -431,6 +435,11 @@ main(int argc, char **argv) else { /* generate bytecode */ struct RProc *proc = mrb_generate_code(mrb, parser); + if (proc == NULL) { + fputs("codegen error\n", stderr); + mrb_parser_free(parser); + break; + } if (args.verbose) { mrb_codedump_all(mrb, proc); -- cgit v1.2.3