From 2509b3acee5941f4271d678d638b8e647df27dae Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Sun, 18 Oct 2015 19:39:26 -0500 Subject: [PATCH 1/1] Big endian fix: load_u24_unaligned() must be consistent with loaded_u32_to_u24() --- include/wimlib/unaligned.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/wimlib/unaligned.h b/include/wimlib/unaligned.h index 34240bd0..3fd35a4d 100644 --- a/include/wimlib/unaligned.h +++ b/include/wimlib/unaligned.h @@ -138,7 +138,11 @@ load_u24_unaligned(const u8 *p) return loaded_u32_to_u24(load_u32_unaligned(p)); #else # define LOAD_U24_REQUIRED_NBYTES 3 +# if CPU_IS_BIG_ENDIAN + return ((u32)p[2] << 0) | ((u32)p[1] << 8) | ((u32)p[0] << 16); +# else return ((u32)p[0] << 0) | ((u32)p[1] << 8) | ((u32)p[2] << 16); +# endif #endif } -- 2.43.0