`argv` may be modified when `mrb_funcall()` is called; fix #3419

Calling `mrb_funcall()` and `mrb_yield()` (and their related
functions) are discouraged unless absolutely necessary, because
it can cause this kind of issues very easily.
parent 8f52b88e
......@@ -445,8 +445,11 @@ mrb_obj_extend_m(mrb_state *mrb, mrb_value self)
{
mrb_value *argv;
mrb_int argc;
mrb_value args;
mrb_get_args(mrb, "*", &argv, &argc);
args = mrb_ary_new_from_values(mrb, argc, argv);
argv = (mrb_value*)RARRAY_PTR(args);
return mrb_obj_extend(mrb, argc, argv, self);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment