summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-08-19 16:18:06 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-08-19 16:18:06 +0900
commitf62dc56ba2f9401479aeaf333cfdb7ba0909c361 (patch)
treeda7555f91309d2767f71c36ae8aa0b1de13f1204
parent444e4b7976d629663d1020de65280e01853a2ca4 (diff)
parent55ee7fe79c1ae876f4740f842add6c4c7f1b9bfa (diff)
downloadmruby-f62dc56ba2f9401479aeaf333cfdb7ba0909c361.tar.gz
mruby-f62dc56ba2f9401479aeaf333cfdb7ba0909c361.zip
Merge pull request #2539 from cubicdaiya/issues/mirb_error_handlings
Fix error handlings in mirb.
-rw-r--r--mrbgems/mruby-bin-mirb/tools/mirb/mirb.c9
1 files changed, 9 insertions, 0 deletions
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);