Issue #10738 has been updated by Martin Drst.

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

Applied in changeset r49254.

----------
* lib/uri/mailto.rb: raising URI::InvalidComponentError instead
  of failing with undefined method `split' for nil:NilClass for
  mailto: URIs without opaque part. [Bug #10738]
* test/uri/testuri.rb: Test for above

----------------------------------------
Bug #10738: Parsing invalid URI results in undefined method `split' for nil:NilClass (NoMethodError)
https://bugs.ruby-lang.org/issues/10738#change-51008

* Author: Martin Drst
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.3.0dev (2015-01-12 trunk 49226) [x86_64-cygwin]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
I tried to parse an invalid URI with the URI library. I expected an error such as URI::InvalidComponentError or URI::InvalidComponentError, but I got "undefined method `split' for nil:NilClass (NoMethodError)".

The simplest way to check this is as follows:
  ruby -ruri -e 'URI "mailto:/example.com/"'
which produces
/usr/local/lib/ruby/2.3.0/uri/mailto.rb:138:in `initialize': undefined method `split' for nil:NilClass (NoMethodError)
        from /usr/local/lib/ruby/2.3.0/uri/rfc3986_parser.rb:75:in `new'
        from /usr/local/lib/ruby/2.3.0/uri/rfc3986_parser.rb:75:in `parse'
        from /usr/local/lib/ruby/2.3.0/uri/common.rb:226:in `parse'
        from /usr/local/lib/ruby/2.3.0/uri/common.rb:713:in `URI'
        from -e:1:in `<main>'

I have some ideas for how to fix this, e.g. add
  raise InvalidComponentError if @opaque.nil?
before the offending line (/lib/uri/mailto.rb:138), and will go forward andadd such a fix unless I hear some advice to the contrary.



-- 
https://bugs.ruby-lang.org/