From bbe22ca078c02ca248722832fd77e2a6cd2813c5 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Fri, 13 Dec 2024 09:42:55 +0100 Subject: 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). --- gas/symbols.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gas/symbols.c b/gas/symbols.c index fa3aaa37..8401b4e 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: -- cgit v1.1