X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=hivex%2Fhivex.c;h=546ef18dde094d8cd4bdc2e06b568f34483fb9a5;hp=36c6b0eb494e3b5996cc743cebdba4760adc18bb;hb=ac8ee450dbe65990378ca9c13094b7187ae70b0d;hpb=add1be720e4f4abf95bec17eea346436c8d776c7;ds=sidebyside diff --git a/hivex/hivex.c b/hivex/hivex.c index 36c6b0e..546ef18 100644 --- a/hivex/hivex.c +++ b/hivex/hivex.c @@ -283,15 +283,16 @@ hivex_open (const char *filename, int flags) if (h->bitmap == NULL) goto error; -#if 0 /* Doesn't work. */ /* Header checksum. */ - uint32_t *daddr = h->addr; + uint32_t *daddr = (uint32_t *) h->addr; size_t i; uint32_t sum = 0; for (i = 0; i < 0x1fc / 4; ++i) { - sum += le32toh (*daddr); + sum ^= le32toh (*daddr); daddr++; } + +#if 0 /* Doesn't work. */ if (sum != le32toh (h->hdr->csum)) { fprintf (stderr, "hivex: %s: bad checksum in hive header\n", filename); errno = EINVAL;