From: Danielle Rozenblit Date: Thu, 8 Sep 2022 20:53:13 +0000 (-0700) Subject: skip flush operation in case where op is NULL X-Git-Tag: v1.5.4^2~163^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d7f9a90dff02561558f99f074c22cdba9ee4dd9;p=thirdparty%2Fzstd.git skip flush operation in case where op is NULL --- diff --git a/lib/decompress/zstd_decompress.c b/lib/decompress/zstd_decompress.c index 975522f4b..3edb9e680 100644 --- a/lib/decompress/zstd_decompress.c +++ b/lib/decompress/zstd_decompress.c @@ -2177,23 +2177,24 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB break; } case zdss_flush: - { size_t const toFlushSize = zds->outEnd - zds->outStart; + if (op != NULL) { + size_t const toFlushSize = zds->outEnd - zds->outStart; size_t const flushedSize = ZSTD_limitCopy(op, (size_t)(oend-op), zds->outBuff + zds->outStart, toFlushSize); - op = op ? op + flushedSize : op; + op += flushedSize; zds->outStart += flushedSize; if (flushedSize == toFlushSize) { /* flush completed */ zds->streamStage = zdss_read; if ( (zds->outBuffSize < zds->fParams.frameContentSize) - && (zds->outStart + zds->fParams.blockSizeMax > zds->outBuffSize) ) { + && (zds->outStart + zds->fParams.blockSizeMax > zds->outBuffSize) ) { DEBUGLOG(5, "restart filling outBuff from beginning (left:%i, needed:%u)", (int)(zds->outBuffSize - zds->outStart), (U32)zds->fParams.blockSizeMax); zds->outStart = zds->outEnd = 0; } break; - } } + }} /* cannot complete flush */ someMoreWork = 0; break;