From: nagachika00@... Date: 2016-03-28T17:12:29+00:00 Subject: [ruby-core:74641] [Ruby trunk Bug#10738] Parsing invalid URI results in undefined method `split' for nil:NilClass (NoMethodError) Issue #10738 has been updated by Tomoyuki Chikanaga. Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: REQUIRED to 2.0.0: UNKNOWN, 2.1: DONTNEED, 2.2: REQUIRED I've confirmed that with ruby 2.1.8 the reproduce snippet raises URI::InvalidComponentError (expected behavior). % ruby -v -ruri -e 'URI "mailto:/example.com/" rescue p $!' ruby 2.1.8p440 (2015-12-16 revision 53160) [x86_64-darwin15.0] # ---------------------------------------- Bug #10738: Parsing invalid URI results in undefined method `split' for nil:NilClass (NoMethodError) https://bugs.ruby-lang.org/issues/10738#change-57768 * Author: Martin D��rst * 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: DONTNEED, 2.2: REQUIRED ---------------------------------------- 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. -- https://bugs.ruby-lang.org/ Unsubscribe: