From cf6a0b989a57db81f1470560edf4dbfb1835c032 Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Tue, 2 Mar 2021 15:10:05 +0000 Subject: libctf: fix signed/unsigned comparison confusion Comparing an encoding's cte_bits to a ctf_type_size needs a cast: one is a uint32_t and the other is an ssize_t. libctf/ChangeLog 2021-03-02 Nick Alcock * ctf-dump.c (ctf_dump_format_type): Fix signed/unsigned confusion. --- libctf/ctf-dump.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libctf/ctf-dump.c') diff --git a/libctf/ctf-dump.c b/libctf/ctf-dump.c index 758d28d..788355d 100644 --- a/libctf/ctf-dump.c +++ b/libctf/ctf-dump.c @@ -144,7 +144,7 @@ ctf_dump_format_type (ctf_dict_t *fp, ctf_id_t id, int flag) if (ctf_type_encoding (fp, id, &ep) == 0) { - if (ep.cte_bits != ctf_type_size (fp, id) * CHAR_BIT + if ((ssize_t) ep.cte_bits != ctf_type_size (fp, id) * CHAR_BIT && flag & CTF_FT_BITFIELD) { if (asprintf (&bit, ":%i", ep.cte_bits) < 0) @@ -154,7 +154,7 @@ ctf_dump_format_type (ctf_dict_t *fp, ctf_id_t id, int flag) bit = NULL; } - if (ep.cte_bits != ctf_type_size (fp, id) * CHAR_BIT + if ((ssize_t) ep.cte_bits != ctf_type_size (fp, id) * CHAR_BIT || ep.cte_offset != 0) { const char *slice = ""; -- cgit v1.1