diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-01-12 17:24:43 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-01-12 17:24:43 +0900 |
commit | 1eb8eb55c27b19e36d5bd23ce27f7ec2b9a7f521 (patch) | |
tree | bc6ee6e1558b8054a603d2e2893199521169f80a | |
parent | b017848f8a9c907be07f51d6ae6304bff9950594 (diff) | |
download | ruby-1eb8eb55c27b19e36d5bd23ce27f7ec2b9a7f521.tar.gz |
Convert time component strings to integers more strictly
https://bugs.ruby-lang.org/issues/17485#change-89871
-rw-r--r-- | test/ruby/test_time.rb | 1 | ||||
-rw-r--r-- | time.c | 8 |
2 files changed, 5 insertions, 4 deletions
diff --git a/test/ruby/test_time.rb b/test/ruby/test_time.rb index e49753e143..e5da0d6343 100644 --- a/test/ruby/test_time.rb +++ b/test/ruby/test_time.rb @@ -46,6 +46,7 @@ class TestTime < Test::Unit::TestCase t = Time.new(*tm, "-12:00") assert_equal([2001,2,28,23,59,30,-43200], [t.year, t.month, t.mday, t.hour, t.min, t.sec, t.gmt_offset], bug4090) assert_raise(ArgumentError) { Time.new(2000,1,1, 0,0,0, "+01:60") } + assert_raise(ArgumentError) { Time.new(2021, 1, 1, "+09:99") } end def test_time_add() @@ -2793,7 +2793,7 @@ static int obj2int(VALUE obj) { if (RB_TYPE_P(obj, T_STRING)) { - obj = rb_str_to_inum(obj, 10, FALSE); + obj = rb_str_to_inum(obj, 10, TRUE); } return NUM2INT(obj); @@ -2815,7 +2815,7 @@ static VALUE obj2vint(VALUE obj) { if (RB_TYPE_P(obj, T_STRING)) { - obj = rb_str_to_inum(obj, 10, FALSE); + obj = rb_str_to_inum(obj, 10, TRUE); } else { obj = rb_to_int(obj); @@ -2830,7 +2830,7 @@ obj2subsecx(VALUE obj, VALUE *subsecx) VALUE subsec; if (RB_TYPE_P(obj, T_STRING)) { - obj = rb_str_to_inum(obj, 10, FALSE); + obj = rb_str_to_inum(obj, 10, TRUE); *subsecx = INT2FIX(0); } else { @@ -2844,7 +2844,7 @@ static VALUE usec2subsecx(VALUE obj) { if (RB_TYPE_P(obj, T_STRING)) { - obj = rb_str_to_inum(obj, 10, FALSE); + obj = rb_str_to_inum(obj, 10, TRUE); } return mulquov(num_exact(obj), INT2FIX(TIME_SCALE), INT2FIX(1000000)); |