This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: ToT build failure with ToT GCC (strncpy warning)
- From: Florian Weimer <fweimer at redhat dot com>
- To: sellcey at cavium dot com, libc-alpha <libc-alpha at sourceware dot org>
- Date: Mon, 13 Nov 2017 17:30:44 +0100
- Subject: Re: ToT build failure with ToT GCC (strncpy warning)
- Authentication-results: sourceware.org; auth=none
- References: <1510590538.5755.108.camel@cavium.com>
On 11/13/2017 05:28 PM, Steve Ellcey wrote:
A recent change to GCC has caused a glibc build failure. The GCC
change was for strncpy buffer overflow checking (PR c/81117 in the GCC
bugzilla). The resulting glibc build failure is:
../sysdeps/unix/sysv/linux/if_index.c:46:3: error: ‘strncpy’ specified
bound 16 equals destination size [-Werror=stringop-truncation]
strncpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
It looks like GCC ran into this themselves and their fix was to change
the strncpy call to memcpy. The glibc breakage is also noted in GCC
bug bootstrap/82948 but I don't see it mentioned in the glibc mailing
lsit anywhere.
Does changing the strncpy call here to memcpy sound like the right fix?
See the existing thread “[PATCH] add attribute nonstring”.
Thanks,
Florian