diff --git a/lib/zstd_buffered.c b/lib/zstd_buffered.c index 7cf61ed84..b7937f1d8 100644 --- a/lib/zstd_buffered.c +++ b/lib/zstd_buffered.c @@ -523,7 +523,12 @@ size_t ZBUFF_decompressContinue(ZBUFF_DCtx* zbc, void* dst, size_t* maxDstSizePt *srcSizePtr = ip-istart; *maxDstSizePtr = op-ostart; - return ZSTD_nextSrcSizeToDecompress(zbc->zc) - zbc->inPos; + { + size_t nextSrcSizeHint = ZSTD_nextSrcSizeToDecompress(zbc->zc); + if (nextSrcSizeHint > 3) nextSrcSizeHint+= 3; /* get the next block header while at it */ + nextSrcSizeHint -= zbc->inPos; /* already loaded*/ + return nextSrcSizeHint; + } }