diff options
author | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-09-24 07:48:33 +0000 |
---|---|---|
committer | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-09-24 07:48:33 +0000 |
commit | 1aef602d5a9398ff362de212ae402ffcd8ff76ae (patch) | |
tree | 26ef45af6b246709fe73e6189b1d16e2704758db /lib/webrick | |
parent | d54d9ba7de7094698e7009a171df013821c3b0d1 (diff) | |
download | ruby-1aef602d5a9398ff362de212ae402ffcd8ff76ae.tar.gz |
webrick: raise EOFError in parse when read line is nil
[Bug #15146]
From: Justin Li <git@justinli.net>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/webrick')
-rw-r--r-- | lib/webrick/httprequest.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/webrick/httprequest.rb b/lib/webrick/httprequest.rb index c40f7c16e4..ac60c3937f 100644 --- a/lib/webrick/httprequest.rb +++ b/lib/webrick/httprequest.rb @@ -445,12 +445,14 @@ module WEBrick 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 |