summary refs log tree commit diff stats
path: root/lib/pure
diff options
context:
space:
mode:
authorErik O'Leary <erik.m.oleary@gmail.com>2013-11-15 10:47:25 -0600
committerErik O'Leary <erik.m.oleary@gmail.com>2013-11-15 10:47:25 -0600
commit1a6742e651f65ed2d2b2584b7c6c634a485b9cac (patch)
tree8fa822794be80dd381c44ecdc1bf373fc53f3170 /lib/pure
parentb5965d05a200dc4eaa62de2ee379b631952be554 (diff)
downloadNim-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.nim5
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()