From: Alan Modra Date: Wed, 1 Jul 2026 01:27:51 +0000 (+0930) Subject: libiberty d_compact_number signed integer overflow X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=54e80f9747d62efea50038655801ecb58d37b507;p=thirdparty%2Fbinutils-gdb.git libiberty d_compact_number signed integer overflow https://lists.gnu.org/archive/html/bug-binutils/2026-06/msg00189.html Fix this by doing the addition in unsigned arithmetic. --- diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c index 5f08ef8946a..ab122fc388d 100644 --- a/libiberty/cp-demangle.c +++ b/libiberty/cp-demangle.c @@ -3266,7 +3266,7 @@ d_compact_number (struct d_info *di) else if (d_peek_char (di) == 'n') return -1; else - num = d_number (di) + 1; + num = d_number (di) + 1u; if (num < 0 || ! d_check_char (di, '_')) return -1;