changeset 7809:a5bbb3abeff8 HEAD

logview: Handle unexpected header sizes correctly.
author Timo Sirainen <tss@iki.fi>
date Wed, 11 Jun 2008 02:30:34 +0300
parents 9185f2adeefb
children a32df93cc112
files src/util/logview.c
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/util/logview.c	Tue Jun 10 22:06:26 2008 +0300
+++ b/src/util/logview.c	Wed Jun 11 02:30:34 2008 +0300
@@ -31,6 +31,11 @@
 		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);