From: Jan Beulich Date: Fri, 16 May 2025 08:37:46 +0000 (+0200) Subject: gas: range-check 3rd argument of .align et al X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=344b1e0f5f79;p=thirdparty%2Fbinutils-gdb.git gas: range-check 3rd argument of .align et al Negative values would have been silently converted to large positive ones, which may not be the user's intention. Similarly overly large values would have been silently truncated. Warn them instead, and zap such values. --- diff --git a/gas/read.c b/gas/read.c index 31b89b7cbc8..0b817b790a1 100644 --- a/gas/read.c +++ b/gas/read.c @@ -1598,7 +1598,13 @@ s_align (signed int arg, int bytes_p) else { ++input_line_pointer; - max = get_absolute_expression (); + offsetT val = get_absolute_expression (); + max = val; + if (val < 0 || max != val) + { + as_warn (_("ignoring out of range alignment maximum")); + max = 0; + } } }