diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/uri/ftp.rb | 1 | ||||
-rw-r--r-- | test/uri/test_ftp.rb | 4 |
3 files changed, 10 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Thu Aug 30 09:21:01 2012 NARUSE, Yui <naruse@ruby-lang.org> + + * lib/uri/ftp.rb (URI::FTP#initialize): raise InvalidURIError if "//" + is not present [ruby-core:47344] [Bug #6945] + Thu Aug 30 07:45:12 2012 Luis Lavena <luislavena@gmail.com> * test/ruby/test_file_exhaustive.rb: fix test introduced in r36811 for diff --git a/lib/uri/ftp.rb b/lib/uri/ftp.rb index 26e4bb8326..971684a545 100644 --- a/lib/uri/ftp.rb +++ b/lib/uri/ftp.rb @@ -135,6 +135,7 @@ module URI # +opaque+, +query+ and +fragment+, in that order. # def initialize(*arg) + raise InvalidURIError unless arg[5] arg[5] = arg[5].sub(/^\//,'').sub(/^%2F/,'/') super(*arg) @typecode = nil diff --git a/test/uri/test_ftp.rb b/test/uri/test_ftp.rb index 0d76c4497b..cc6843e60f 100644 --- a/test/uri/test_ftp.rb +++ b/test/uri/test_ftp.rb @@ -27,6 +27,10 @@ class TestFTP < Test::Unit::TestCase assert_equal('pass', url.password) end + def test_parse_invalid + assert_raise(InvalidURIError){URI.parse('ftp:example')} + end + def test_paths # If you think what's below is wrong, please read RubyForge bug 2055, # RFC 1738 section 3.2.2, and RFC 2396. |