[Libguestfs] [PATCH 5/13] hivex: Move header checksum code into a function.
Jim Meyering
jim at meyering.net
Thu Jan 28 17:35:29 UTC 2010
Richard W.M. Jones wrote:
> Subject: [PATCH 05/13] hivex: Move header checksum code into a function.
>
> This function can be reused later.
...
> +static uint32_t
> +header_checksum (hive_h *h)
This parameter can/should be "const".
Is there some reason it's not?
> +{
> + uint32_t *daddr = (uint32_t *) h->addr;
> + size_t i;
> + uint32_t sum = 0;
> +
> + for (i = 0; i < 0x1fc / 4; ++i) {
> + sum ^= le32toh (*daddr);
> + daddr++;
> + }
> +
> + return sum;
> +}
> +
> hive_h *
> hivex_open (const char *filename, int flags)
> {
> @@ -340,14 +355,7 @@ hivex_open (const char *filename, int flags)
> goto error;
>
> /* Header checksum. */
> - uint32_t *daddr = (uint32_t *) h->addr;
> - size_t i;
> - uint32_t sum = 0;
> - for (i = 0; i < 0x1fc / 4; ++i) {
> - sum ^= le32toh (*daddr);
> - daddr++;
> - }
> -
> + uint32_t sum = header_checksum (h);
> if (sum != le32toh (h->hdr->csum)) {
> fprintf (stderr, "hivex: %s: bad checksum in hive header\n", filename);
> errno = EINVAL;
More information about the Libguestfs
mailing list