From 028842788beb134490d8d09ee931603433c5d62f Mon Sep 17 00:00:00 2001 From: Danielle Rozenblit Date: Wed, 7 Sep 2022 17:52:26 -0700 Subject: [PATCH] fix zero offset to nullpointer errors --- lib/decompress/zstd_decompress.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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; -- 2.47.2