From 73ade3503a33151ea739aef04478d1ad7e42c00d Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 9 Nov 2020 17:35:15 +0200 Subject: [PATCH] lib: istream-chain - Avoid NULL pointer arithmetic Even though it was only doing +0. Fixes: runtime error: applying zero offset to null pointer --- src/lib/istream-chain.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/lib/istream-chain.c b/src/lib/istream-chain.c index 89fc86023a..e931487836 100644 --- a/src/lib/istream-chain.c +++ b/src/lib/istream-chain.c @@ -181,9 +181,12 @@ static bool i_stream_chain_skip(struct chain_istream *cstream) bytes_skipped -= cstream->prev_stream_left; cstream->prev_stream_left = 0; } - stream->pos -= bytes_skipped; - stream->skip -= bytes_skipped; - stream->buffer += bytes_skipped; + if (bytes_skipped > 0) { + i_assert(stream->buffer != NULL); + stream->pos -= bytes_skipped; + stream->skip -= bytes_skipped; + stream->buffer += bytes_skipped; + } cstream->prev_skip = stream->skip; if (link == NULL || link->eof) { i_assert(bytes_skipped == 0); -- 2.47.3