Closed hillu closed 4 years ago
I'll have a look when time permits, but there should be no need for using le32toh
or be32toh
Looks like my first guess was incomplete: The tests run fine on mips, powerpc (32bit big-endian), but not on s390x, ppc64, sparc64 (64bit, big-endian), see https://buildd.debian.org/status/logs.php?pkg=libesedb&ver=20181229-1&suite=sid. Might this have something to do with shifting around of value_aligned
in line 74ff of libesedb_checksum.c
?
Is a possibility, I have a look.
Just tried something simple and stupid, I changed the libesedb_aligned_t
definition:
typedef uint32_t libesedb_aligned_t;
Now the tests run fine on the s390x I used earlier.
Ack, so maybe an issue handing the byte ordering of successive 32-bit works on 64-bit big-endian platforms. I'll have a look when time permits.
updated function to support 64-bit big-endian, CI tests now pass, closing issue
While trying to build libesedb, the Debian/s390x autobuilder failed in the
libesedb_checksum_calculate_little_endian_xor32
test:I have found some spots in
libesedb_checksum_calculate_little_endian_xor32
that look like they could use somele32toh
orbe32toh
, but I haven't figured out what exactly is going wrong.