From 107fb672a316d99980efbabcc50142306fb34003 Mon Sep 17 00:00:00 2001 From: Hilko Bengen Date: Thu, 12 May 2011 00:04:20 +0200 Subject: [PATCH] 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. --- lib/hivex.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) -- 1.8.3.1