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.
This commit is contained in:
Nick Clifton 2022-08-05 10:29:48 +01:00
parent 731d2cc1d5
commit 5858ac626e
2 changed files with 10 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2022-08-05 Nick Clifton <nickc@redhat.com>
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.
2022-07-18 Claudiu Zissulescu <claziss@synopsys.com>
* config/tc-arc.c (md_assembly): Update strspn string with the

View file

@ -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))