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