From: Jan Beulich Date: Fri, 13 Dec 2024 08:42:55 +0000 (+0100) Subject: gas: avoid UB on signed multiplication in resolve_symbol_value() X-Git-Tag: gdb-16-branchpoint~110 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bbe22ca078c02ca248722832fd77e2a6cd2813c5;p=thirdparty%2Fbinutils-gdb.git gas: avoid UB on signed multiplication in resolve_symbol_value() Commit 487b0ff02dda ("ubsan: signed integer multiply overflow") touched only one of the two affected places (the 3rd, resolve_expression(), is already using valueT type local variables). --- diff --git a/gas/symbols.c b/gas/symbols.c index fa3aaa37ed4..8401b4e425e 100644 --- a/gas/symbols.c +++ b/gas/symbols.c @@ -1721,7 +1721,8 @@ resolve_symbol_value (symbolS *symp) switch (symp->x->value.X_op) { - case O_multiply: left *= right; break; + /* See expr() for reasons of the use of valueT casts here. */ + case O_multiply: left *= (valueT) right; break; case O_divide: left /= right; break; case O_modulus: left %= right; break; case O_left_shift: