Fix GCC 8's -Wstringop-overflow on bfd/coff-rs6000.c

GCC 8 will bring a new warning option which will detect possible
overflow and truncation on string manipulation functions.  For more
details, see:

  https://gcc.gnu.org/ml/gcc-patches/2017-08/msg00471.html

While compiling BFD with it, I can see one place on bfd/coff-rs6000.c
where the warning is triggered.  This:

  (void) strncpy (fhdr.magic, XCOFFARMAG, SXCOFFARMAG);

will not include the trailing NUL on fhdr.magic, but that's fine
because it's a magic number.  The fix is trivial: just use memcpy
instead.

OK to push?

2018-02-06  Sergio Durigan Junior  <sergiodj@redhat.com>

	* coff-rs6000.c (xcoff_write_archive_contents_old): Use
	'memcpy' instead of 'strncpy' when writing the magic number.
This commit is contained in:
Sergio Durigan Junior
2018-02-06 10:37:04 -05:00
parent 68807c3cd6
commit 8278e7cec3
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2018-02-06 Sergio Durigan Junior <sergiodj@redhat.com>
* coff-rs6000.c (xcoff_write_archive_contents_old): Use
'memcpy' instead of 'strncpy' when writing the magic number.
2018-02-06 Nick Clifton <nickc@redhat.com>
PR 22794

View File

@ -2090,7 +2090,7 @@ xcoff_write_archive_contents_old (bfd *abfd)
char decbuf[XCOFFARMAG_ELEMENT_SIZE + 1];
memset (&fhdr, 0, sizeof fhdr);
(void) strncpy (fhdr.magic, XCOFFARMAG, SXCOFFARMAG);
(void) memcpy (fhdr.magic, XCOFFARMAG, SXCOFFARMAG);
sprintf (fhdr.firstmemoff, "%d", SIZEOF_AR_FILE_HDR);
sprintf (fhdr.freeoff, "%d", 0);