From 609236f6d6fc1447a15ff039d0b994ebbb274796 Mon Sep 17 00:00:00 2001 From: Jindrich Novy Date: Thu, 24 Mar 2011 12:48:46 +0100 Subject: [PATCH] Clean up headerRead() --- lib/header.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/lib/header.c b/lib/header.c index 277d28d..a7d2a96 100644 --- a/lib/header.c +++ b/lib/header.c @@ -966,34 +966,32 @@ Header headerCopyLoad(const void * uh) Header headerRead(FD_t fd, int magicp) { int32_t block[4]; - int32_t reserved; int32_t * ei = NULL; int32_t il; int32_t dl; - int32_t magic; Header h = NULL; size_t len; - int i; - memset(block, 0, sizeof(block)); - i = 2; - if (magicp == HEADER_MAGIC_YES) - i += 2; + if (magicp == HEADER_MAGIC_YES) { + int32_t magic; - if (Fread(block, 1, i*sizeof(*block), fd) != i*sizeof(*block)) - goto exit; + if (Fread(block, 1, 4*sizeof(*block), fd) != 4*sizeof(*block)) + goto exit; - i = 0; + magic = block[0]; - if (magicp == HEADER_MAGIC_YES) { - magic = block[i++]; if (memcmp(&magic, rpm_header_magic, sizeof(magic))) goto exit; - reserved = block[i++]; + + il = ntohl(block[2]); + dl = ntohl(block[3]); + } else { + if (Fread(block, 1, 2*sizeof(*block), fd) != 2*sizeof(*block)) + goto exit; + + il = ntohl(block[0]); + dl = ntohl(block[1]); } - - il = ntohl(block[i]); i++; - dl = ntohl(block[i]); i++; len = sizeof(il) + sizeof(dl) + (il * sizeof(struct entryInfo_s)) + dl; -- 2.7.4