diff options
author | Nick Clifton <nickc@redhat.com> | 2022-08-05 10:29:48 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2022-08-05 10:29:48 +0100 |
commit | 5858ac626e548772407c038b09b7837550b127dd (patch) | |
tree | 24adcf531466743408c6d156fd712f421070e972 | |
parent | 731d2cc1d5106c077584bd83e96dbba4f7e11118 (diff) | |
download | binutils-5858ac626e548772407c038b09b7837550b127dd.zip binutils-5858ac626e548772407c038b09b7837550b127dd.tar.gz binutils-5858ac626e548772407c038b09b7837550b127dd.tar.bz2 |
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.
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/read.c | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 5a391a2..f6b3577 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -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 @@ -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)) |