[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Libguestfs] [PATCH 3/3] hivex: Fix for endianess bug.



From: Hilko Bengen <bengen hilluzination de>

* 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 files changed, 1 insertions(+), 1 deletions(-)

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.7.5.1


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]