Bug #15146 ยป 0001-webrick-raise-EOFError-in-parse-when-read-line-is-ni.patch
| lib/webrick/httprequest.rb | ||
|---|---|---|
|
def read_request_line(socket)
|
||
|
@request_line = read_line(socket, MAX_URI_LENGTH) if socket
|
||
|
raise HTTPStatus::EOFError unless @request_line
|
||
|
@request_bytes = @request_line.bytesize
|
||
|
if @request_bytes >= MAX_URI_LENGTH and @request_line[-1, 1] != LF
|
||
|
raise HTTPStatus::RequestURITooLarge
|
||
|
end
|
||
|
@request_time = Time.now
|
||
|
raise HTTPStatus::EOFError unless @request_line
|
||
|
if /^(\S+)\s+(\S++)(?:\s+HTTP\/(\d+\.\d+))?\r?\n/mo =~ @request_line
|
||
|
@request_method = $1
|
||
|
@unparsed_uri = $2
|
||
| test/webrick/test_httprequest.rb | ||
|---|---|---|
|
req.body
|
||
|
}
|
||
|
end
|
||
|
def test_eof_raised_when_line_is_nil
|
||
|
assert_raise(WEBrick::HTTPStatus::EOFError) {
|
||
|
req = WEBrick::HTTPRequest.new(WEBrick::Config::HTTP)
|
||
|
req.parse(StringIO.new(""))
|
||
|
}
|
||
|
end
|
||
|
end
|
||