summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--vm_insnhelper.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index d46431606e..826bc44aad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Aug 13 17:31:12 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * vm_insnhelper.c (caller_setup_args): should ensure if the value
+ from to_proc is a real Proc.
+
Wed Aug 13 17:28:29 2008 Akinori MUSHA <knu@iDaemons.org>
* common.mk: regint.h no longer includes vm_core.h.
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 0fe9902418..a5967f736c 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -221,7 +221,7 @@ caller_setup_args(const rb_thread_t *th, rb_control_frame_t *cfp, VALUE flag,
if (proc != Qnil) {
if (!rb_obj_is_proc(proc)) {
VALUE b = rb_check_convert_type(proc, T_DATA, "Proc", "to_proc");
- if (NIL_P(b)) {
+ if (NIL_P(b) || !rb_obj_is_proc(b)) {
rb_raise(rb_eTypeError,
"wrong argument type %s (expected Proc)",
rb_obj_classname(proc));