]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
global: i_stream_read_memarea() - Remove impossible ret==-2 checks
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 2 Nov 2017 21:22:14 +0000 (23:22 +0200)
committerTimo Sirainen <tss@dovecot.fi>
Thu, 2 Nov 2017 22:19:46 +0000 (00:19 +0200)
If the stream's buffer is empty, i_stream_read_memarea() would have already
assert-crashed at this point.

src/lib-http/http-transfer-chunked.c
src/lib-mail/istream-dot.c
src/lib/istream-crlf.c

index f3e934c2a9d1c763a9aabf5ecf3b17f6581a0325..d098075a71b16ece4bb48f1cfb68ce233a9a1fde 100644 (file)
@@ -377,7 +377,8 @@ http_transfer_chunked_istream_read_data(
        data = i_stream_get_data(stream->parent, &size);
        if (size == 0) {
                ret = i_stream_read_memarea(stream->parent);
-               if (ret <= 0 && (ret != -2 || stream->skip == 0)) {
+               if (ret <= 0) {
+                       i_assert(ret != -2); /* 0 sized buffer can't be full */
                        if ( stream->parent->eof && stream->parent->stream_errno == 0 ) {
                                /* unexpected EOF */
                                io_stream_set_error(&tcstream->istream.iostream,
index f9bda4d5246e58a0f513c0bad9599f87ef9b0fcb..d6e6dd4ec255bfae136909d4cecc61816dfdbdbe 100644 (file)
@@ -30,7 +30,8 @@ static int i_stream_dot_read_some(struct dot_istream *dstream)
        size = i_stream_get_data_size(stream->parent);
        if (size == 0) {
                ret = i_stream_read_memarea(stream->parent);
-               if (ret <= 0 && (ret != -2 || stream->skip == 0)) {
+               if (ret <= 0) {
+                       i_assert(ret != -2); /* 0 sized buffer can't be full */
                        if (stream->parent->stream_errno != 0) {
                                stream->istream.stream_errno =
                                        stream->parent->stream_errno;
index d0d4ff0098843e1a025b600abc826dbd3ca9964b..c5bbdd01db165fe1b45ed493f22f94e55ace581f 100644 (file)
@@ -20,7 +20,8 @@ static int i_stream_crlf_read_common(struct crlf_istream *cstream)
        size = i_stream_get_data_size(stream->parent);
        if (size == 0) {
                ret = i_stream_read_memarea(stream->parent);
-               if (ret <= 0 && (ret != -2 || stream->skip == 0)) {
+               if (ret <= 0) {
+                       i_assert(ret != -2); /* 0 sized buffer can't be full */
                        stream->istream.stream_errno =
                                stream->parent->stream_errno;
                        stream->istream.eof = stream->parent->eof;