net/http/parser.lua
branch0.12
changeset 12893 94a99330ce87
parent 12886 9ed628635dc6
child 12978 ba409c67353b
child 13382 db30ffbf2090
--- a/net/http/parser.lua	Thu Feb 16 17:20:09 2023 +0100
+++ b/net/http/parser.lua	Fri Feb 17 17:01:19 2023 +0000
@@ -153,6 +153,7 @@
 						if not chunk_size then return; end
 						chunk_size = chunk_size and tonumber(chunk_size, 16);
 						if not chunk_size then error = true; return error_cb("invalid-chunk-size"); end
+
 						if chunk_size == 0 and chunk_header:find("\r\n\r\n", chunk_start-2, true) then
 							local body_buffer = packet.body_buffer;
 							if body_buffer then
@@ -168,8 +169,8 @@
 							state, chunked = nil, nil;
 							packet.partial = nil;
 							success_cb(packet);
-						elseif buffer:length() - chunk_start - 2 >= chunk_size then -- we have a chunk
-							buffer:discard(chunk_start - 1); -- TODO verify that it's not off-by-one
+						elseif buffer:length() - chunk_start - 1 >= chunk_size then -- we have a chunk
+							buffer:discard(chunk_start - 1);
 							(packet.body_sink or packet.body_buffer):write(buffer:read(chunk_size));
 							buffer:discard(2); -- CRLF
 						else -- Partial chunk remaining