From 0689d330b27f1921afb10ff4b716b69fdaa7a567 Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Tue, 30 Jul 2024 12:28:04 +0100 Subject: libctf: fix ctf_archive_count return value on big-endian This failed to properly byteswap its return value. The ctf_archive format predates the idea of "just write natively and flip on open", and byteswaps all over the place. It's too easy to forget one. The next revision of the archive format (not versioned, so we just tweak the magic number instead) should be native-endianned like the dicts inside it are. libctf/ * ctf-archive.c (ctf_archive_count): Byteswap return value. --- libctf/ctf-archive.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libctf/ctf-archive.c b/libctf/ctf-archive.c index 0034bf0..b73999c 100644 --- a/libctf/ctf-archive.c +++ b/libctf/ctf-archive.c @@ -785,7 +785,7 @@ ctf_archive_count (const ctf_archive_t *wrapper) if (!wrapper->ctfi_is_archive) return 1; - return wrapper->ctfi_archive->ctfa_ndicts; + return le64toh (wrapper->ctfi_archive->ctfa_ndicts); } /* Look up a symbol in an archive by name or index (if the name is set, a lookup -- cgit v1.1