[PATCH] gcc/config/nios2/nios2.c: Let custom_builtin_name[*] always be zero terminated string
Chen Gang
gang.chen.5i5j@gmail.com
Sat Jul 26 07:59:00 GMT 2014
On 07/26/2014 02:32 PM, Chung-Lin Tang wrote:
> On 14/7/26 11:28 AM, Chen Gang wrote:
>> The related strncpy() for custom_builtin_name[*] may set 5 none-zero
>> characters, which may cause custom_builtin_name[*] is none-zero
>> terminated.
>>
>> So add additional '\0' byte for custom_builtin_name[*].
>
> Where did you see this? Supposedly the snprintf of the custom function
> type string should at most be of 'xnxx' format; 4 characters at most,
I guess, your 'xnxx' means "%cn%c%c", not "%sn%s%s" (which is current
implementation), also at present, "32 - n" is 17, not 4 for snprintf()
length limitation.
If we are always sure it must be no more than 4 characters (at present,
it is, but in the future, I don't know). We can use strcpy() instead of
strncpy() for it -- that will let other readers no doubt.
If we need let custom_builtin_name[*] not only zero terminated, but also
zero pad, we need pass '4' to strncpy() instead of '5', that also will
clear all doubts.
> not 5. Do you have a test case where the behavior you described appears?
>
I find it by reading source code, for me, it is simple code, test is
welcomed, but not mandatory.
But it really needs necessary discussion (for modification, and comments).
Thanks.
--
Chen Gang
Open, share, and attitude like air, water, and life which God blessed
More information about the Gcc-patches
mailing list