From d868a04630bd7bfe9c1543a7c3f68703b3e276e4 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 16 May 2016 21:51:56 +0300 Subject: [PATCH] global: Fixed slighty wrong i_stream_read_data() with _read_bytes() These calls were reading one byte more than they were intended to read. This didn't really cause any problems, but now they're correct. --- src/lda/main.c | 4 ++-- src/lib-compression/istream-lz4.c | 4 ++-- src/lib-lda/duplicate.c | 4 ++-- src/lib-storage/index/dbox-multi/mdbox-purge.c | 4 ++-- src/plugins/fts/fts-expunge-log.c | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/lda/main.c b/src/lda/main.c index 55f963f5b8..d61d783051 100644 --- a/src/lda/main.c +++ b/src/lda/main.c @@ -123,8 +123,8 @@ create_raw_stream(struct mail_deliver_context *ctx, input = i_stream_create_fd(fd, 4096, FALSE); input->blocking = TRUE; /* If input begins with a From-line, drop it */ - ret = i_stream_read_data(input, &data, &size, 5); - if (ret > 0 && size >= 5 && memcmp(data, "From ", 5) == 0) { + ret = i_stream_read_bytes(input, &data, &size, 5); + if (ret > 0 && memcmp(data, "From ", 5) == 0) { /* skip until the first LF */ i_stream_skip(input, 5); while (i_stream_read_more(input, &data, &size) > 0) { diff --git a/src/lib-compression/istream-lz4.c b/src/lib-compression/istream-lz4.c index 77767112d5..b5ce92dcb9 100644 --- a/src/lib-compression/istream-lz4.c +++ b/src/lib-compression/istream-lz4.c @@ -100,8 +100,8 @@ static ssize_t i_stream_lz4_read(struct istream_private *stream) } if (zstream->chunk_left == 0) { - ret = i_stream_read_data(stream->parent, &data, &size, - IOSTREAM_LZ4_CHUNK_PREFIX_LEN); + ret = i_stream_read_bytes(stream->parent, &data, &size, + IOSTREAM_LZ4_CHUNK_PREFIX_LEN); if (ret < 0) { stream->istream.stream_errno = stream->parent->stream_errno; diff --git a/src/lib-lda/duplicate.c b/src/lib-lda/duplicate.c index fdc81903c9..0e458d06ae 100644 --- a/src/lib-lda/duplicate.c +++ b/src/lib-lda/duplicate.c @@ -93,7 +93,7 @@ duplicate_read_records(struct duplicate_file *file, struct istream *input, unsigned int change_count; change_count = 0; - while (i_stream_read_data(input, &data, &size, record_size) > 0) { + while (i_stream_read_bytes(input, &data, &size, record_size) > 0) { if (record_size == sizeof(hdr)) memcpy(&hdr, data, sizeof(hdr)); else { @@ -170,7 +170,7 @@ static int duplicate_read(struct duplicate_file *file) /* */ input = i_stream_create_fd(fd, DUPLICATE_BUFSIZE, FALSE); - if (i_stream_read_data(input, &data, &size, sizeof(hdr)) > 0) { + if (i_stream_read_bytes(input, &data, &size, sizeof(hdr)) > 0) { memcpy(&hdr, data, sizeof(hdr)); if (hdr.version == 0 || hdr.version > DUPLICATE_VERSION + 10) { /* FIXME: backwards compatibility with v1.0 */ diff --git a/src/lib-storage/index/dbox-multi/mdbox-purge.c b/src/lib-storage/index/dbox-multi/mdbox-purge.c index 56d8d16cc8..a8911412cc 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-purge.c +++ b/src/lib-storage/index/dbox-multi/mdbox-purge.c @@ -69,8 +69,8 @@ mdbox_file_read_metadata_hdr(struct dbox_file *file, size_t size; int ret; - ret = i_stream_read_data(file->input, &data, &size, - sizeof(*meta_hdr_r)); + ret = i_stream_read_bytes(file->input, &data, &size, + sizeof(*meta_hdr_r)); if (ret <= 0) { i_assert(ret == -1); if (file->input->stream_errno == 0) { diff --git a/src/plugins/fts/fts-expunge-log.c b/src/plugins/fts/fts-expunge-log.c index 1b5861afac..cf94ba12bb 100644 --- a/src/plugins/fts/fts-expunge-log.c +++ b/src/plugins/fts/fts-expunge-log.c @@ -447,7 +447,7 @@ fts_expunge_log_read_next(struct fts_expunge_log_read_ctx *ctx) return NULL; /* initial read to try to get the record */ - (void)i_stream_read_data(ctx->input, &data, &size, IO_BLOCK_SIZE); + (void)i_stream_read_bytes(ctx->input, &data, &size, IO_BLOCK_SIZE); if (size == 0 && ctx->input->stream_errno == 0) { /* expected EOF - mark the file as read by unlinking it */ if (ctx->unlink) @@ -455,8 +455,8 @@ fts_expunge_log_read_next(struct fts_expunge_log_read_ctx *ctx) /* try reading again, in case something new was written */ i_stream_sync(ctx->input); - (void)i_stream_read_data(ctx->input, &data, &size, - IO_BLOCK_SIZE); + (void)i_stream_read_bytes(ctx->input, &data, &size, + IO_BLOCK_SIZE); } if (size < sizeof(*rec)) { if (size == 0 && ctx->input->stream_errno == 0) {