Project

General

Profile

Actions

Backport #2707

closed

Denial of Service with Date>> operator for large numbers of n

Added by zev (Zev Blut) over 14 years ago. Updated over 13 years ago.


Description

=begin
I am not sure this is a realistic issue, but my colleagues and I discovered a fun way to consume cpu for a long time.

For any n >= 1e16

ruby -v
ruby 1.8.6 (2009-06-08 patchlevel 369) [i686-linux]

require 'date'
n = 1e16
Date.today >> (n* 12)

On 1.9 this might not be a problem:
ruby -v
ruby 1.9.1p243 (2009-07-16 revision 24175) [i686-linux]

ruby-1.9.1-p243 > RUBY_VERSION
=> "1.9.1"
ruby-1.9.1-p243 > require 'date'
=> true
ruby-1.9.1-p243 > n = 1e16
=> 1.0e+16
ruby-1.9.1-p243 > Date.today >> (n* 12)
NoMethodError: undefined method +' for nil:NilClass from /home/zblut/.rvm/ruby-1.9.1-p243/lib/ruby/1.9.1/date.rb:620:in _valid_civil?'
from /home/zblut/.rvm/ruby-1.9.1-p243/lib/ruby/1.9.1/date.rb:1410:in >>' from (irb):4 from /home/zblut/.rvm/ruby-1.9.1-p243/bin/irb:15:in '
ruby-1.9.1-p243 > n = 1e15
=> 1.0e+15
ruby-1.9.1-p243 > Date.today >> (n* 12)
=> #<Date: 1000000000002010-01-03 (730485000004910427/2,0,2299161)>
=end

Actions #1

Updated by tadf (tadayoshi funaba) over 14 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
This issue was solved with changeset r27014.
Zev, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

Actions #2

Updated by shyouhei (Shyouhei Urabe) over 14 years ago

  • Status changed from Closed to Assigned
  • Assignee set to shyouhei (Shyouhei Urabe)

=begin

=end

Actions #3

Updated by shyouhei (Shyouhei Urabe) over 14 years ago

  • Status changed from Assigned to Closed

=begin
This issue was solved with changeset r28204.
Zev, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

Actions #4

Updated by shyouhei (Shyouhei Urabe) over 14 years ago

  • Status changed from Closed to Assigned
  • Assignee changed from shyouhei (Shyouhei Urabe) to wyhaines (Kirk Haines)

=begin
According to the reporter this issue affects 1.8.6.
=end

Actions #5

Updated by wyhaines (Kirk Haines) over 14 years ago

  • Status changed from Assigned to Closed

=begin
This issue was solved with changeset r28233.
Zev, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0