This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Replace strncpy with memccpy to fix -Wstringop-truncation.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]