]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: istream - Don't call memcpy() with NULL parameter --with-devel-checks
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 23 Feb 2023 14:10:43 +0000 (16:10 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 24 Feb 2023 09:20:46 +0000 (09:20 +0000)
src/lib/istream.c

index 5fabe1e3f4ed400280b913709876ced0d4c10b19..073662fdd60c7613159855e1a12c9e55d3a5b7d4 100644 (file)
@@ -291,13 +291,14 @@ ssize_t i_stream_read(struct istream *stream)
        bool invalid = i_stream_is_buffer_invalid(_stream);
 
        i_assert(prev_skip <= prev_pos);
+       size_t prev_size = prev_pos - prev_skip;
        if (invalid)
                ;
-       else if (prev_pos - prev_skip <= 4)
-               memcpy(prev_buf, prev_data + prev_skip, prev_pos - prev_skip);
-       else {
+       else if (prev_size > 4) {
                memcpy(prev_buf, prev_data + prev_skip, 2);
                memcpy(prev_buf+2, prev_data + prev_pos - 2, 2);
+       } else if (prev_size > 0) {
+               memcpy(prev_buf, prev_data + prev_skip, prev_size);
        }
 #endif