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
|