From: Hilko Bengen Date: Wed, 11 May 2011 22:04:20 +0000 (+0200) Subject: hivex: Fix for endianess bug. X-Git-Tag: 1.2.6~5 X-Git-Url: http://git.annexia.org/?a=commitdiff_plain;h=107fb672a316d99980efbabcc50142306fb34003;p=hivex.git hivex: Fix for endianess bug. * Richard W.M. Jones: > > Both size_t and int are 32 bit values. An endianess issue, maybe? > I guess it might be. We're supposed to be doing le32toh / be32toh > everywhere as appropriate, but we might be missing one. The code is > mainly tested on little endian arches. Found it. Now "make check" completes successfully on Sparc and PowerPC. --- diff --git a/lib/hivex.c b/lib/hivex.c index 2abd5bd..7715520 100644 --- a/lib/hivex.c +++ b/lib/hivex.c @@ -1062,7 +1062,7 @@ get_values (hive_h *h, hive_node_h node, size_t i; for (i = 0; i < nr_values; ++i) { - hive_node_h value = vlist->offset[i]; + hive_node_h value = le32toh (vlist->offset[i]); value += 0x1000; if (!IS_VALID_BLOCK (h, value)) { if (h->msglvl >= 2)