`mrb_io_initialize_copy` should not free existing `fptr`; fix #4005

When arguments `copy` and `orig` are the same object.
parent 05db341e
......@@ -563,6 +563,7 @@ mrb_io_initialize_copy(mrb_state *mrb, mrb_value copy)
mrb_get_args(mrb, "o", &orig);
fptr_orig = io_get_open_fptr(mrb, orig);
fptr_copy = (struct mrb_io *)DATA_PTR(copy);
if (fptr_orig == fptr_copy) return copy;
if (fptr_copy != NULL) {
fptr_finalize(mrb, fptr_copy, FALSE);
mrb_free(mrb, fptr_copy);
......
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