summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-04-11 01:51:25 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-04-11 01:51:25 +0900
commit03c849338f5fb0efd91b2071f4cedf92bb7bcd55 (patch)
tree1a040e4b91d70f9f28c1507679babeeaef9ddd98
parent9094415acfff11b4590f156eb44cf24483a6fb00 (diff)
downloadmruby-03c849338f5fb0efd91b2071f4cedf92bb7bcd55.tar.gz
mruby-03c849338f5fb0efd91b2071f4cedf92bb7bcd55.zip
Fiber#yield should check C function boundary; fix #3582
-rw-r--r--mrbgems/mruby-fiber/src/fiber.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/mrbgems/mruby-fiber/src/fiber.c b/mrbgems/mruby-fiber/src/fiber.c
index 232c925d3..b9d4ccdcc 100644
--- a/mrbgems/mruby-fiber/src/fiber.c
+++ b/mrbgems/mruby-fiber/src/fiber.c
@@ -326,6 +326,7 @@ mrb_fiber_yield(mrb_state *mrb, mrb_int len, const mrb_value *a)
mrb_raise(mrb, E_FIBER_ERROR, "can't yield from root fiber");
}
+ fiber_check_cfunc(mrb, c);
c->prev->status = MRB_FIBER_RUNNING;
c->status = MRB_FIBER_SUSPENDED;
mrb->c = c->prev;