[前][次][番号順一覧][スレッド一覧]

ruby-changes:43506

From: shugo <ko1@a...>
Date: Wed, 6 Jul 2016 07:14:23 +0900 (JST)
Subject: [ruby-changes:43506] shugo:r55579 (trunk): * lib/net/ftp.rb (putline): raise an ArgumentError when

shugo	2016-07-06 07:14:18 +0900 (Wed, 06 Jul 2016)

  New Revision: 55579

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=55579

  Log:
    * lib/net/ftp.rb (putline): raise an ArgumentError when
      CR or LF is included in a line.

  Modified files:
    trunk/ChangeLog
    trunk/lib/net/ftp.rb
    trunk/test/net/ftp/test_ftp.rb
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 55578)
+++ ChangeLog	(revision 55579)
@@ -1,3 +1,8 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Wed Jul  6 07:11:27 2016  Shugo Maeda  <shugo@r...>
+
+	* lib/net/ftp.rb (putline): raise an ArgumentError when
+	  CR or LF is included in a line.
+
 Tue Jul  5 20:49:30 2016  SHIBATA Hiroshi  <hsbt@r...>
 
 	* ext/json/*, test/json/*: Update json-2.0.1.
Index: lib/net/ftp.rb
===================================================================
--- lib/net/ftp.rb	(revision 55578)
+++ lib/net/ftp.rb	(revision 55579)
@@ -295,6 +295,9 @@ module Net https://github.com/ruby/ruby/blob/trunk/lib/net/ftp.rb#L295
       if @debug_mode
         print "put: ", sanitize(line), "\n"
       end
+      if /[\r\n]/ =~ line
+        raise ArgumentError, "A line must not contain CR or LF"
+      end
       line = line + CRLF
       @sock.write(line)
     end
Index: test/net/ftp/test_ftp.rb
===================================================================
--- test/net/ftp/test_ftp.rb	(revision 55578)
+++ test/net/ftp/test_ftp.rb	(revision 55579)
@@ -1633,6 +1633,16 @@ EOF https://github.com/ruby/ruby/blob/trunk/test/net/ftp/test_ftp.rb#L1633
     end
   end
 
+  def test_putline_reject_crlf
+    ftp = Net::FTP.new
+    assert_raise(ArgumentError) do
+      ftp.send(:putline, "\r")
+    end
+    assert_raise(ArgumentError) do
+      ftp.send(:putline, "\n")
+    end
+  end
+
   private
 
   def create_ftp_server(sleep_time = nil)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]