From ce0cd6ad1f486040676c30034f43700096afae41 Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 30 Dec 2008 16:07:14 +0000 Subject: [PATCH] * object.c (rb_to_float): prohibit conversion from nil to float. [ruby-dev:37663] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ object.c | 3 +++ 2 files changed, 8 insertions(+) diff --git a/ChangeLog b/ChangeLog index cc5b5d1874..01275b9f36 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Dec 31 00:27:54 2008 Yukihiro Matsumoto + + * object.c (rb_to_float): prohibit conversion from nil to float. + [ruby-dev:37663] + Tue Dec 30 21:17:00 2008 Tanaka Akira * ext/socket/mkconstants.rb: use sock_define_uconst for INADDR_* diff --git a/object.c b/object.c index 889a0c6d21..61aa80a014 100644 --- a/object.c +++ b/object.c @@ -2273,6 +2273,9 @@ rb_to_float(VALUE val) VALUE v; if (TYPE(val) == T_FLOAT) return val; + if (NIL_P(val)) { + rb_raise(rb_eTypeError, "can't convert nil into Float"); + } v = convert_type(val, "Float", "to_f", Qtrue); if (TYPE(v) != T_FLOAT) { const char *cname = rb_obj_classname(val);