[PATCH] RISC-V: Add string length check for operands in AS
Li Xu
xuli1@eswincomputing.com
Wed Dec 14 08:06:43 GMT 2022
2022-12-13 17:07 Andreas Schwab <schwab@suse.de> wrote:
>
>On Dez 13 2022, Li Xu wrote:
>
>> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
>> index 0682eb35524..b0989e4b124 100644
>> --- a/gas/config/tc-riscv.c
>> +++ b/gas/config/tc-riscv.c
>> @@ -1206,7 +1206,7 @@ arg_lookup (char **s, const char *const *array, size_t size, unsigned *regnop)
>> return false;
>>
>> for (i = 0; i < size; i++)
>> - if (array[i] != NULL && strncmp (array[i], *s, len) == 0)
>> + if (array[i] != NULL && (strlen(array[i]) == len) && strncmp (array[i], *s, len) == 0)
>
>There is no need to read through array[i] twice.
>
> if (array[i] != NULL && strncmp (array[i], *s, len) == 0
> && array[i][len] == '\0')
>
>--
>Andreas Schwab, SUSE Labs, schwab@suse.de
>GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
>"And now for something completely different."
Thanks to Jan and Andreas review comments.
I tried to use startswith(), but the first argument is not easy to pass. So i choose to
follow Andreas's advice.
The new patch is https://sourceware.org/pipermail/binutils/2022-December/125094.html, thanks.
More information about the Binutils
mailing list