net.http.parser: Fix off-by-one error in chunked encoding parser
authorMatthew Wild <mwild1@gmail.com>
Mon, 15 Apr 2013 20:21:57 +0000 (21:21 +0100)
committerMatthew Wild <mwild1@gmail.com>
Mon, 15 Apr 2013 20:21:57 +0000 (21:21 +0100)
net/http/parser.lua

index 34742d2b591f88aa0776a5b4831a8abed9d37102..9688e0520a61173a7eec27e920d6fc36fb977aca 100644 (file)
@@ -133,7 +133,8 @@ function httpstream.new(success_cb, error_cb, parser_type, options_cb)
                                                                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