From: Timo Sirainen Date: Tue, 10 Jun 2008 23:30:34 +0000 (+0300) Subject: logview: Handle unexpected header sizes correctly. X-Git-Tag: 1.2.alpha1~352 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9f0a781a42d536f865aa33ca7634e146ced478d9;p=thirdparty%2Fdovecot%2Fcore.git logview: Handle unexpected header sizes correctly. --HG-- branch : HEAD --- diff --git a/src/util/logview.c b/src/util/logview.c index c5351b3ca9..e9098eae1d 100644 --- a/src/util/logview.c +++ b/src/util/logview.c @@ -31,6 +31,11 @@ static void dump_hdr(int fd) i_fatal("file hdr read() %"PRIuSIZE_T" != %"PRIuSIZE_T, ret, sizeof(hdr)); } + if (hdr.hdr_size < sizeof(hdr)) { + memset(PTR_OFFSET(&hdr, hdr.hdr_size), 0, + sizeof(hdr) - hdr.hdr_size); + } + lseek(fd, hdr.hdr_size, SEEK_SET); printf("version = %u.%u\n", hdr.major_version, hdr.minor_version); printf("hdr size = %u\n", hdr.hdr_size);