From 0d1064face9956be43774b81e9cdad5daea28c92 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 17 Mar 2022 11:54:40 +1030 Subject: asan: buffer overflows after calling ignore_rest_of_line operand() is not a place that should be calling ignore_rest_of_line. ignore_rest_of_line shouldn't increment input_line_pointer if already at buffer limit. * expr.c (operand): Don't call ignore_rest_of_line. * read.c (s_mri_common): Likewise. (ignore_rest_of_line): Don't increment input_line_pointer if already at buffer_limit. --- gas/expr.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'gas/expr.c') diff --git a/gas/expr.c b/gas/expr.c index bd5b9e7..2341343 100644 --- a/gas/expr.c +++ b/gas/expr.c @@ -1212,9 +1212,7 @@ operand (expressionS *expressionP, enum expr_mode mode) { as_bad (_("expected symbol name")); (void) restore_line_pointer (c); - if (c != ')') - ignore_rest_of_line (); - else + if (c == ')') ++input_line_pointer; break; } -- cgit v1.1