diff --git a/lib/libmtar.lua b/lib/libmtar.lua index acf5a18..9782336 100644 --- a/lib/libmtar.lua +++ b/lib/libmtar.lua @@ -43,7 +43,9 @@ function mtar.iter(stream) -- table -- function -- Given buffer *stream*, return return rb end return function() - stream:read(remain) + while remain > 0 do + remain=remain-#stream:read(math.min(remain,2048)) + end local nlen = toint(stream:read(2) or "\0\0") if nlen == 0 then return