[PATCH] Replace strncpy with memccpy to fix -Wstringop-truncation.
Stefan Liebler
stli@linux.vnet.ibm.com
Thu Apr 5 15:57:00 GMT 2018
On 03/23/2018 02:29 AM, Khem Raj wrote:
> Hi Joseph
>
> On Thu, Mar 22, 2018 at 6:17 PM, Joseph Myers <joseph@codesourcery.com> wrote:
>> On Thu, 22 Mar 2018, Khem Raj wrote:
>>
>>> * nis/nss_nisplus/nisplus-parser.c: Replace strncpy with memcpy to
>>> avoid -Wstringop-truncation.
>>
>> Could you give more details of (a) in what circumstances (architecture,
>> compiler, etc.) you get this warning and (b) why the truncation is
>> correct?
>>
>> Whatever build failure you got hasn't shown up with build-many-glibcs.py.
>> Maybe that should include a configuration with --enable-obsolete-rpc
>> --enable-obsolete-nsl to make sure that it tests building those bits of
>> code that are disabled by default?
>>
>
> This is seen with gcc/trunk when cross compiling for armv7ve target
> and yes --enable-obsolete-rpc is used to configure, I am using
> OpenEmbedded build system.
>
> nss_nisplus/nisplus-parser.c:90:7: error: 'strncpy' destination
> unchanged after copying no bytes [-Werror=stringop-truncation]
> strncpy (first_unused, numstr, len);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> nss_nisplus/nisplus-parser.c:106:7: error: 'strncpy' destination
> unchanged after copying no bytes [-Werror=stringop-truncation]
> strncpy (first_unused, numstr, len);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
Hi,
I also see those warnings on s390x if build with gcc-head (from today)
and if glibc is configured with --enable-obsolete-nsl.
Why do we need the strncpy at all?
if (len == 0 && ...)
{
...
strncpy (first_unused, numstr, len);
first_unused[len] = '\0';
...
}
Bye.
Stefan
More information about the Libc-alpha
mailing list