diff options
author | Erik O'Leary <erik.m.oleary@gmail.com> | 2013-11-15 10:47:25 -0600 |
---|---|---|
committer | Erik O'Leary <erik.m.oleary@gmail.com> | 2013-11-15 10:47:25 -0600 |
commit | 1a6742e651f65ed2d2b2584b7c6c634a485b9cac (patch) | |
tree | 8fa822794be80dd381c44ecdc1bf373fc53f3170 /lib/pure | |
parent | b5965d05a200dc4eaa62de2ee379b631952be554 (diff) | |
download | Nim-1a6742e651f65ed2d2b2584b7c6c634a485b9cac.tar.gz |
Fixed http header parsing issue
If second half of http header line was empty, server would crash with EInvalidIndex https://gist.github.com/onionhammer/7487452
Diffstat (limited to 'lib/pure')
-rw-r--r-- | lib/pure/httpserver.nim | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/pure/httpserver.nim b/lib/pure/httpserver.nim index 043e713a6..901fdc779 100644 --- a/lib/pure/httpserver.nim +++ b/lib/pure/httpserver.nim @@ -401,8 +401,9 @@ proc nextAsync(s: PAsyncHTTPServer) = var value = "" i = header.parseUntil(key, ':') inc(i) # skip : - i += header.skipWhiteSpace(i) - i += header.parseUntil(value, {'\c', '\L'}, i) + if i < header.len: + i += header.skipWhiteSpace(i) + i += header.parseUntil(value, {'\c', '\L'}, i) s.headers[key] = value else: s.client.close() |