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

ruby-changes:8709

From: matz <ko1@a...>
Date: Tue, 18 Nov 2008 15:59:13 +0900 (JST)
Subject: [ruby-changes:8709] Ruby:r20244 (trunk): * lib/webrick/httprequest.rb (WEBrick::HTTPRequest#read_request_line):

matz	2008-11-18 15:58:55 +0900 (Tue, 18 Nov 2008)

  New Revision: 20244

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20244

  Log:
    * lib/webrick/httprequest.rb (WEBrick::HTTPRequest#read_request_line): 
      use possessive match for path retrieval to avoid huge recursion
      for insanely long path.

  Modified files:
    trunk/ChangeLog
    trunk/lib/webrick/httprequest.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 20243)
+++ ChangeLog	(revision 20244)
@@ -1,3 +1,9 @@
+Tue Nov 18 15:56:55 2008  Yukihiro Matsumoto  <matz@r...>
+
+	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#read_request_line): 
+	  use possessive match for path retrieval to avoid huge recursion
+	  for insanely long path.
+
 Tue Nov 18 15:50:11 2008  Yukihiro Matsumoto  <matz@r...>
 
 	* re.c (rb_reg_desc): re might be NULL.
Index: lib/webrick/httprequest.rb
===================================================================
--- lib/webrick/httprequest.rb	(revision 20243)
+++ lib/webrick/httprequest.rb	(revision 20244)
@@ -249,7 +249,7 @@
       end
       @request_time = Time.now
       raise HTTPStatus::EOFError unless @request_line
-      if /^(\S+)\s+(\S+)(?:\s+HTTP\/(\d+\.\d+))?\r?\n/mo =~ @request_line
+      if /^(\S+)\s+(\S++)(?:\s+HTTP\/(\d+\.\d+))?\r?\n/mo =~ @request_line
         @request_method = $1
         @unparsed_uri   = $2
         @http_version   = HTTPVersion.new($3 ? $3 : "0.9")

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

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