From: Noah Meyerhans Date: Wed, 2 Sep 2026 01:12:51 +0000 (-0400) Subject: [PATCH] lib: xxh64: fix byte ordering bug on big-endian systems X-Git-Tag: archive/raspbian/1%2.4.1+dfsg1-6+rpi1+deb13u7^2~40 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=664ad68703a63118533d1e4150b15bf57d709f8b;p=dovecot.git [PATCH] lib: xxh64: fix byte ordering bug on big-endian systems Convert from little-endian to host byte order where necessary. Background at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1146449 Gbp-Pq: Name 0001-lib-xxh64-fix-byte-ordering-bug-on-big-endian-system.patch --- diff --git a/src/lib/xxh64.c b/src/lib/xxh64.c index 1c17833..4a151bd 100644 --- a/src/lib/xxh64.c +++ b/src/lib/xxh64.c @@ -8,6 +8,8 @@ #include "lib.h" #include "xxh64.h" +#include + #define XXH64_PRIME1 UINT64_C(0x9E3779B185EBCA87) #define XXH64_PRIME2 UINT64_C(0xC2B2AE3D27D4EB4F) #define XXH64_PRIME3 UINT64_C(0x165667B19E3779F9) @@ -20,14 +22,14 @@ static inline uint64_t xxh64_read64(const void *p) { uint64_t v; memcpy(&v, p, sizeof(v)); - return v; + return le64toh(v); /* Convert from little-endian to host byte order */ } static inline uint32_t xxh64_read32(const void *p) { uint32_t v; memcpy(&v, p, sizeof(v)); - return v; + return le32toh(v); /* Convert from little-endian to host byte order */ } static uint64_t ATTR_UNSIGNED_WRAPS xxh64_round(uint64_t acc, uint64_t input)