Project

General

Profile

Actions

Bug #10738

closed

Parsing invalid URI results in undefined method `split' for nil:NilClass (NoMethodError)

Added by duerst (Martin Dürst) over 9 years ago. Updated about 8 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0dev (2015-01-12 trunk 49226) [x86_64-cygwin]
[ruby-core:67563]

Description

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 `'

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 and add such a fix unless I hear some advice to the contrary.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0