summaryrefslogtreecommitdiffhomepage
path: root/mrbgems
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-08-13 15:34:13 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-08-25 09:19:17 +0900
commit31827189ab98a4e51c84772fd782627fc8feb8cc (patch)
treea2bea13897b4250900cc83e8ed72c991e91d728e /mrbgems
parentfbfe519be77a3afbcb633b2c73709ae400d953d9 (diff)
downloadmruby-31827189ab98a4e51c84772fd782627fc8feb8cc.tar.gz
mruby-31827189ab98a4e51c84772fd782627fc8feb8cc.zip
Remove potential path to avoid uninitialized variable access.
Diffstat (limited to 'mrbgems')
-rw-r--r--mrbgems/mruby-struct/src/struct.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/mrbgems/mruby-struct/src/struct.c b/mrbgems/mruby-struct/src/struct.c
index fe7e73f04..b567a00d5 100644
--- a/mrbgems/mruby-struct/src/struct.c
+++ b/mrbgems/mruby-struct/src/struct.c
@@ -302,17 +302,19 @@ mrb_struct_s_def(mrb_state *mrb, mrb_value klass)
}
}
rest = mrb_ary_new_from_values(mrb, argcnt, pargv);
- for (i=0; i<RARRAY_LEN(rest); i++) {
+ for (i=0; i<argcnt; i++) {
id = mrb_obj_to_sym(mrb, RARRAY_PTR(rest)[i]);
mrb_ary_set(mrb, rest, i, mrb_symbol_value(id));
}
- }
- st = make_struct(mrb, name, rest, mrb_class_ptr(klass));
- if (!mrb_nil_p(b)) {
- mrb_yield_with_class(mrb, b, 1, &st, st, mrb_class_ptr(st));
- }
+ st = make_struct(mrb, name, rest, mrb_class_ptr(klass));
+ if (!mrb_nil_p(b)) {
+ mrb_yield_with_class(mrb, b, 1, &st, st, mrb_class_ptr(st));
+ }
- return st;
+ return st;
+ }
+ /* not reached */
+ return mrb_nil_value();
}
static mrb_int