diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-12-14 14:55:42 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-12-14 14:55:42 +0000 |
commit | 3ec034c597e6d40543bb844dc8f96645bef4bed2 (patch) | |
tree | b5cb0d6867ff0988ebe1e09203dff00de0506095 | |
parent | 1cfe43fd85c66a9e2b5068480b3e043c31e6b8ca (diff) |
* test/net/ftp/test_ftp.rb (process_port_or_eprt): merge a part of
r56973 to pass the test introduced at previous commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_3@61251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | test/net/ftp/test_ftp.rb | 18 |
2 files changed, 23 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Thu Dec 14 23:53:41 2017 NAKAMURA Usaku <usa@ruby-lang.org> + + * test/net/ftp/test_ftp.rb (process_port_or_eprt): merge a part of + r56973 to pass the test introduced at previous commit. + Thu Dec 14 22:55:05 2017 Shugo Maeda <shugo@ruby-lang.org> Fix a command injection vulnerability in Net::FTP. diff --git a/test/net/ftp/test_ftp.rb b/test/net/ftp/test_ftp.rb index ae07a59056..fbb3bf246e 100644 --- a/test/net/ftp/test_ftp.rb +++ b/test/net/ftp/test_ftp.rb @@ -1900,4 +1900,22 @@ EOF end end end + + def process_port_or_eprt(sock, line) + case line + when /\APORT (.*)/ + port_args = $1.split(/,/) + host = port_args[0, 4].join(".") + port = port_args[4, 2].map(&:to_i).inject {|x, y| (x << 8) + y} + sock.print("200 PORT command successful.\r\n") + return host, port + when /\AEPRT \|2\|(.*?)\|(.*?)\|/ + host = $1 + port = $2.to_i + sock.print("200 EPRT command successful.\r\n") + return host, port + else + flunk "PORT or EPRT expected" + end + end end |