aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2016-08-26 16:42:14 +0200
committerKim Alvefur <zash@zash.se>2016-08-26 16:42:14 +0200
commita206b98c0ebebc15626b55c83e66e64cfab7c673 (patch)
treea20b9cce60b5d69b26454d0e3b8a3a0ab52eeebd
parented2b537cbdab358b5bab6a39d34f67972129583e (diff)
downloadprosody-a206b98c0ebebc15626b55c83e66e64cfab7c673.tar.gz
prosody-a206b98c0ebebc15626b55c83e66e64cfab7c673.zip
net.http.parser: Don't collapse buffer when expecting a chunk and not enough data has been received
-rw-r--r--net/http/parser.lua3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/http/parser.lua b/net/http/parser.lua
index 493ff3a9..96d32ec8 100644
--- a/net/http/parser.lua
+++ b/net/http/parser.lua
@@ -134,6 +134,9 @@ function httpstream.new(success_cb, error_cb, parser_type, options_cb)
if state then -- read body
if client then
if chunked then
+ if chunk_start and buflen - chunk_start - 2 < chunk_size then
+ return;
+ end -- not enough data
if buftable then buf, buftable = t_concat(buf), false; end
if not buf:find("\r\n", nil, true) then
return;