diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | lib/uri/mailto.rb | 4 | ||||
-rw-r--r-- | test/uri/test_mailto.rb | 3 |
3 files changed, 14 insertions, 0 deletions
@@ -1,3 +1,10 @@ +Wed Jan 14 18:06:06 2015 Martin Duerst <duerst@it.aoyama.ac.jp> + + * 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 <nobu@ruby-lang.org> * 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", []] |