From 5858ac626e548772407c038b09b7837550b127dd Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 5 Aug 2022 10:29:48 +0100 Subject: When gas/read.c calls mbstowcs with a NULL destination, it should set size to 0 PR 29447 * read.c (read_symbol_name): Pass 0 as the length parameter when invoking mbstowc in order to check the validity of a wide string. --- gas/read.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gas/read.c') diff --git a/gas/read.c b/gas/read.c index 800712466b..e23be666dd 100644 --- a/gas/read.c +++ b/gas/read.c @@ -1629,7 +1629,10 @@ read_symbol_name (void) /* Since quoted symbol names can contain non-ASCII characters, check the string and warn if it cannot be recognised by the current character set. */ - if (mbstowcs (NULL, name, len) == (size_t) -1) + /* PR 29447: mbstowcs ignores the third (length) parameter when + the first (destination) parameter is NULL. For clarity sake + therefore we pass 0 rather than 'len' as the third parameter. */ + if (mbstowcs (NULL, name, 0) == (size_t) -1) as_warn (_("symbol name not recognised in the current locale")); } else if (is_name_beginner (c) || (input_from_string && c == FAKE_LABEL_CHAR)) -- cgit v1.2.3