Software /
code /
prosody
Diff
net/http/parser.lua @ 5475:c2c9f07c5d6a
net.http.parser: Fix off-by-one error in chunked encoding parser
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 15 Apr 2013 21:21:57 +0100 |
parent | 5463:111953bfe767 |
child | 5477:50cbea68586f |
line wrap: on
line diff
--- a/net/http/parser.lua Mon Apr 15 19:37:15 2013 +0200 +++ b/net/http/parser.lua Mon Apr 15 21:21:57 2013 +0100 @@ -133,7 +133,8 @@ buf = buf:gsub("^.-\r\n\r\n", ""); -- This ensure extensions and trailers are stripped success_cb(packet); elseif #buf - chunk_start + 2 >= chunk_size then -- we have a chunk - packet.body = packet.body..buf:sub(chunk_start, chunk_start + chunk_size); + print(chunk_start, chunk_size, ("%q"):format(buf)) + packet.body = packet.body..buf:sub(chunk_start, chunk_start + (chunk_size-1)); buf = buf:sub(chunk_start + chunk_size + 2); chunk_size, chunk_start = nil, nil; else -- Partial chunk remaining