From 4533ed564d6953990210ba63c091009380ec2327 Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Wed, 1 Jul 2020 20:10:17 +0100 Subject: libctf, binutils: fix big-endian libctf archive opening The recent commit "libctf, binutils: support CTF archives like objdump" broke opening of CTF archives on big-endian platforms. This didn't affect anyone much before now because the linker never emitted CTF archives because it wasn't detecting ambiguous types properly: now it does, and this bug becomes obvious. Fix trivial. libctf/ * ctf-archive.c (ctf_arc_bufopen): Endian-swap the archive magic number if needed. --- libctf/ctf-archive.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libctf/ctf-archive.c') diff --git a/libctf/ctf-archive.c b/libctf/ctf-archive.c index 4578552..87e682c 100644 --- a/libctf/ctf-archive.c +++ b/libctf/ctf-archive.c @@ -386,7 +386,7 @@ ctf_arc_bufopen (const ctf_sect_t *ctfsect, const ctf_sect_t *symsect, ctf_file_t *fp = NULL; if (ctfsect->cts_size > sizeof (uint64_t) && - ((*(uint64_t *) ctfsect->cts_data) == CTFA_MAGIC)) + (le64toh ((*(uint64_t *) ctfsect->cts_data)) == CTFA_MAGIC)) { /* The archive is mmappable, so this operation is trivial. -- cgit v1.1