Skip to content

Commit 3a2b918

Browse files
committed
Test backport
1 parent 37928cb commit 3a2b918

1 file changed

Lines changed: 19 additions & 3 deletions

File tree

test/test_puma_server.rb

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ def header(sock)
2727
header
2828
end
2929

30+
def send_http_and_read(req)
31+
port = @server.connected_port
32+
sock = TCPSocket.new @host, port
33+
sock << req
34+
sock.read
35+
end
36+
3037
def test_proper_stringio_body
3138
data = nil
3239

@@ -743,19 +750,28 @@ def test_empty_header_values
743750

744751
# https://github.com/ruby/ruby/commit/d9d4a28f1cdd05a0e8dabb36d747d40bbcc30f16
745752
def test_prevent_response_splitting_headers
746-
server_run app: ->(_) { [200, {'X-header' => "malicious\r\nCookie: hack"}, ["Hello"]] }
753+
@server.app = ->(_) { [200, {'X-header' => "malicious\r\nCookie: hack"}, ["Hello"]] }
754+
755+
@server.add_tcp_listener @host, @port
756+
@server.run
747757
data = send_http_and_read "HEAD / HTTP/1.0\r\n\r\n"
748758
refute_match 'hack', data
749759
end
750760

751761
def test_prevent_response_splitting_headers_cr
752-
server_run app: ->(_) { [200, {'X-header' => "malicious\rCookie: hack"}, ["Hello"]] }
762+
@server.app = ->(_) { [200, {'X-header' => "malicious\rCookie: hack"}, ["Hello"]] }
763+
764+
@server.add_tcp_listener @host, @port
765+
@server.run
753766
data = send_http_and_read "HEAD / HTTP/1.0\r\n\r\n"
754767
refute_match 'hack', data
755768
end
756769

757770
def test_prevent_response_splitting_headers_lf
758-
server_run app: ->(_) { [200, {'X-header' => "malicious\nCookie: hack"}, ["Hello"]] }
771+
@server.app = ->(_) { [200, {'X-header' => "malicious\nCookie: hack"}, ["Hello"]] }
772+
773+
@server.add_tcp_listener @host, @port
774+
@server.run
759775
data = send_http_and_read "HEAD / HTTP/1.0\r\n\r\n"
760776
refute_match 'hack', data
761777
end

0 commit comments

Comments
 (0)