summaryrefslogtreecommitdiffhomepage
path: root/src/proc.c
diff options
context:
space:
mode:
authorCarson McDonald <[email protected]>2015-05-22 10:34:28 -0400
committerCarson McDonald <[email protected]>2015-05-22 10:34:28 -0400
commita797d45e90490884c74b2254b42a4ccecab0c46b (patch)
tree1ff492516d9a1fc981e70960cd46983afe3ee75c /src/proc.c
parent4f6bae61eb8873da240741bc06cf0dbb737d9b46 (diff)
downloadmruby-a797d45e90490884c74b2254b42a4ccecab0c46b.tar.gz
mruby-a797d45e90490884c74b2254b42a4ccecab0c46b.zip
Verify that proc_lambda is passed a proc
Diffstat (limited to 'src/proc.c')
-rw-r--r--src/proc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/proc.c b/src/proc.c
index e1d1d138d..4cb9ffe18 100644
--- a/src/proc.c
+++ b/src/proc.c
@@ -240,6 +240,9 @@ proc_lambda(mrb_state *mrb, mrb_value self)
if (mrb_nil_p(blk)) {
mrb_raise(mrb, E_ARGUMENT_ERROR, "tried to create Proc object without a block");
}
+ if (mrb_type(blk) != MRB_TT_PROC) {
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "not a proc");
+ }
p = mrb_proc_ptr(blk);
if (!MRB_PROC_STRICT_P(p)) {
struct RProc *p2 = (struct RProc*)mrb_obj_alloc(mrb, MRB_TT_PROC, p->c);