From 8278e7cec35536046caf596f4e55c7c037d06cf0 Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Tue, 6 Feb 2018 10:37:04 -0500 Subject: [PATCH] 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 * coff-rs6000.c (xcoff_write_archive_contents_old): Use 'memcpy' instead of 'strncpy' when writing the magic number. --- bfd/ChangeLog | 5 +++++ bfd/coff-rs6000.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 584f087ce8a..14ed147db2c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2018-02-06 Sergio Durigan Junior + + * coff-rs6000.c (xcoff_write_archive_contents_old): Use + 'memcpy' instead of 'strncpy' when writing the magic number. + 2018-02-06 Nick Clifton PR 22794 diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index 2fc1feb1c5b..d02835ede69 100644 --- a/bfd/coff-rs6000.c +++ b/bfd/coff-rs6000.c @@ -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); -- 2.30.2