]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
logview: Handle unexpected header sizes correctly.
authorTimo Sirainen <tss@iki.fi>
Tue, 10 Jun 2008 23:30:34 +0000 (02:30 +0300)
committerTimo Sirainen <tss@iki.fi>
Tue, 10 Jun 2008 23:30:34 +0000 (02:30 +0300)
--HG--
branch : HEAD

src/util/logview.c

index c5351b3ca98e09673fdf7f87a8679049833af4b2..e9098eae1d5f9dcea49519ead2b9f11bfb7ba2e9 100644 (file)
@@ -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);