From e3c4c7e13bcf5b202701ef5acc86b06187b5fdb7 Mon Sep 17 00:00:00 2001 From: duerst Date: Wed, 14 Jan 2015 09:06:13 +0000 Subject: * 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 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ lib/uri/mailto.rb | 4 ++++ test/uri/test_mailto.rb | 3 +++ 3 files changed, 14 insertions(+) diff --git a/ChangeLog b/ChangeLog index f591f2c41e..b13a8c30c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Wed Jan 14 18:06:06 2015 Martin Duerst + + * 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 + Wed Jan 14 16:45:24 2015 Nobuyoshi Nakada * tool/downloader.rb (RubyGems.download): verify downloaded gem diff --git a/lib/uri/mailto.rb b/lib/uri/mailto.rb index 497d9630d2..b4405630a9 100644 --- a/lib/uri/mailto.rb +++ b/lib/uri/mailto.rb @@ -135,6 +135,10 @@ module URI @to = nil @headers = [] + unless @opaque + raise InvalidComponentError, + "missing opaque part for mailto URL" + end to, header = @opaque.split('?', 2) # allow semicolon as a addr-spec separator # http://support.microsoft.com/kb/820868 diff --git a/test/uri/test_mailto.rb b/test/uri/test_mailto.rb index 661f7f7a9c..9001835d28 100644 --- a/test/uri/test_mailto.rb +++ b/test/uri/test_mailto.rb @@ -104,6 +104,9 @@ class TestMailTo < Test::Unit::TestCase # mailto:javascript:alert() bad << ["javascript:alert()", []] + # mailto:/example.com/ ; WRONG, not a mail address + bad << ["/example.com/", []] + # '=' which is in hname or hvalue is wrong. bad << ["foo@example.jp?subject=1+1=2", []] -- cgit v1.2.3