From: Timo Sirainen Date: Mon, 27 Mar 2017 13:30:16 +0000 (+0300) Subject: doveadm dump log: Cleanup - don't change hdr.size X-Git-Tag: 2.3.0.rc1~1849 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb83662d364aaee5b2f7c2fcc4d33d531f81f1a2;p=thirdparty%2Fdovecot%2Fcore.git doveadm dump log: Cleanup - don't change hdr.size Needed by the next commit. --- diff --git a/src/doveadm/doveadm-dump-log.c b/src/doveadm/doveadm-dump-log.c index 778ba1bfd8..eb823a2a89 100644 --- a/src/doveadm/doveadm-dump-log.c +++ b/src/doveadm/doveadm-dump-log.c @@ -261,7 +261,7 @@ static void log_record_print(const struct mail_transaction_header *hdr, const void *data, size_t data_size, uint64_t *modseq) { - unsigned int size = hdr->size - sizeof(*hdr); + unsigned int size = mail_index_offset_to_uint32(hdr->size) - sizeof(*hdr); switch (hdr->type & MAIL_TRANSACTION_TYPE_MASK) { case MAIL_TRANSACTION_EXPUNGE|MAIL_TRANSACTION_EXPUNGE_PROT: { @@ -488,7 +488,7 @@ static void log_record_print(const struct mail_transaction_header *hdr, static int dump_record(struct istream *input, uint64_t *modseq) { struct mail_transaction_header hdr; - unsigned int orig_size; + unsigned int hdr_size; const unsigned char *data; size_t size; int ret; @@ -504,17 +504,16 @@ static int dump_record(struct istream *input, uint64_t *modseq) } memcpy(&hdr, data, sizeof(hdr)); - orig_size = hdr.size; - hdr.size = mail_index_offset_to_uint32(hdr.size); - if (hdr.size < sizeof(hdr)) { + hdr_size = mail_index_offset_to_uint32(hdr.size); + if (hdr_size < sizeof(hdr)) { printf("record: offset=%"PRIuUOFF_T", " "type=%s, size=broken (%x)\n", - input->v_offset, log_record_type(hdr.type), orig_size); + input->v_offset, log_record_type(hdr.type), hdr.size); return 0; } printf("record: offset=%"PRIuUOFF_T", type=%s, size=%u", - input->v_offset, log_record_type(hdr.type), hdr.size); + input->v_offset, log_record_type(hdr.type), hdr_size); if (*modseq > 0 && mail_transaction_header_has_modseq(&hdr)) { *modseq += 1; printf(", modseq=%llu", (unsigned long long)*modseq); @@ -522,7 +521,7 @@ static int dump_record(struct istream *input, uint64_t *modseq) printf("\n"); i_stream_skip(input, sizeof(hdr)); - size_t data_size = hdr.size - sizeof(hdr); + size_t data_size = hdr_size - sizeof(hdr); ret = i_stream_read_bytes(input, &data, &size, data_size); if (ret < 0 && input->stream_errno != 0) i_fatal("read() failed: %s", i_stream_get_error(input));