ruby-changes:36871
From: naruse <ko1@a...>
Date: Wed, 24 Dec 2014 03:59:57 +0900 (JST)
Subject: [ruby-changes:36871] naruse:r48952 (ruby_2_2): merge revision(s) 48948: [Backport #10591]
naruse 2014-12-24 03:59:42 +0900 (Wed, 24 Dec 2014) New Revision: 48952 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=48952 Log: merge revision(s) 48948: [Backport #10591] * lib/net/http/response.rb (Net::HTTPResponse): require one or more spaces [Bug #10591]. by leriksen <leif.eriksen.au@g...> https://github.com/ruby/ruby/pull/782 fix GH-782 NOTE: graph.facebook.com returns without SP Reason-Phrase. Modified directories: branches/ruby_2_2/ Modified files: branches/ruby_2_2/ChangeLog branches/ruby_2_2/lib/net/http/response.rb branches/ruby_2_2/test/net/http/test_httpresponse.rb Index: ruby_2_2/ChangeLog =================================================================== --- ruby_2_2/ChangeLog (revision 48951) +++ ruby_2_2/ChangeLog (revision 48952) @@ -1,3 +1,11 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_2/ChangeLog#L1 +Wed Dec 24 03:37:11 2014 NARUSE, Yui <naruse@r...> + + * lib/net/http/response.rb (Net::HTTPResponse): require one or more + spaces [Bug #10591]. + by leriksen <leif.eriksen.au@g...> + https://github.com/ruby/ruby/pull/782 fix GH-782 + NOTE: graph.facebook.com returns without SP Reason-Phrase. + Wed Dec 24 03:22:49 2014 Nobuyoshi Nakada <nobu@r...> * ext/openssl/ossl_cipher.c (ossl_cipher_update_long): update huge Index: ruby_2_2/lib/net/http/response.rb =================================================================== --- ruby_2_2/lib/net/http/response.rb (revision 48951) +++ ruby_2_2/lib/net/http/response.rb (revision 48952) @@ -37,7 +37,7 @@ class Net::HTTPResponse https://github.com/ruby/ruby/blob/trunk/ruby_2_2/lib/net/http/response.rb#L37 def read_status_line(sock) str = sock.readline - m = /\AHTTP(?:\/(\d+\.\d+))?\s+(\d\d\d)\s*(.*)\z/in.match(str) or + m = /\AHTTP(?:\/(\d+\.\d+))?\s+(\d\d\d)(?:\s+(.*))?\z/in.match(str) or raise Net::HTTPBadResponse, "wrong status line: #{str.dump}" m.captures end Index: ruby_2_2/test/net/http/test_httpresponse.rb =================================================================== --- ruby_2_2/test/net/http/test_httpresponse.rb (revision 48951) +++ ruby_2_2/test/net/http/test_httpresponse.rb (revision 48952) @@ -244,6 +244,65 @@ EOS https://github.com/ruby/ruby/blob/trunk/ruby_2_2/test/net/http/test_httpresponse.rb#L244 refute_same uri, response.uri end + def test_ensure_zero_space_does_not_regress + io = dummy_io(<<EOS) +HTTP/1.1 200OK +Content-Length: 5 +Connection: close + +hello +EOS + + assert_raises Net::HTTPBadResponse do + Net::HTTPResponse.read_new(io) + end + end + + def test_allow_trailing_space_after_status + io = dummy_io(<<EOS) +HTTP/1.1 200\s +Content-Length: 5 +Connection: close + +hello +EOS + + res = Net::HTTPResponse.read_new(io) + assert_equal('1.1', res.http_version) + assert_equal('200', res.code) + assert_equal('', res.message) + end + + def test_normal_status_line + io = dummy_io(<<EOS) +HTTP/1.1 200 OK +Content-Length: 5 +Connection: close + +hello +EOS + + res = Net::HTTPResponse.read_new(io) + assert_equal('1.1', res.http_version) + assert_equal('200', res.code) + assert_equal('OK', res.message) + end + + def test_allow_empty_reason_code + io = dummy_io(<<EOS) +HTTP/1.1 200 +Content-Length: 5 +Connection: close + +hello +EOS + + res = Net::HTTPResponse.read_new(io) + assert_equal('1.1', res.http_version) + assert_equal('200', res.code) + assert_equal(nil, res.message) + end + private def dummy_io(str) Property changes on: ruby_2_2 ___________________________________________________________________ Modified: svn:mergeinfo Merged /trunk:r48948 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/