From: Danielle Rozenblit Date: Thu, 8 Sep 2022 00:52:26 +0000 (-0700) Subject: fix zero offset to nullpointer errors X-Git-Tag: v1.5.4^2~163^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=028842788beb134490d8d09ee931603433c5d62f;p=thirdparty%2Fzstd.git fix zero offset to nullpointer errors --- diff --git a/lib/decompress/zstd_decompress.c b/lib/decompress/zstd_decompress.c index 5bd412df4..ee08d84c3 100644 --- a/lib/decompress/zstd_decompress.c +++ b/lib/decompress/zstd_decompress.c @@ -2059,7 +2059,9 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB if (ZSTD_isError(decompressedSize)) return decompressedSize; DEBUGLOG(4, "shortcut to single-pass ZSTD_decompress_usingDDict()") ip = istart + cSize; - op += decompressedSize; + if (op) { + op += decompressedSize; + } zds->expected = 0; zds->streamStage = zdss_init; someMoreWork = 0; @@ -2179,7 +2181,9 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB case zdss_flush: { 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 += flushedSize; + if (op) { + op += flushedSize; + } zds->outStart += flushedSize; if (flushedSize == toFlushSize) { /* flush completed */ zds->streamStage = zdss_read;