aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorSergio Durigan Junior <sergiodj@redhat.com>2018-02-06 10:37:04 -0500
committerSergio Durigan Junior <sergiodj@redhat.com>2018-02-06 11:47:24 -0500
commit8278e7cec35536046caf596f4e55c7c037d06cf0 (patch)
treef104d283dcb40f452c157d864b3189595a58d9f3 /bfd
parent68807c3cd64ccc4f0e9261df3e840d30d9a19b51 (diff)
downloadgdb-8278e7cec35536046caf596f4e55c7c037d06cf0.zip
gdb-8278e7cec35536046caf596f4e55c7c037d06cf0.tar.gz
gdb-8278e7cec35536046caf596f4e55c7c037d06cf0.tar.bz2
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.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/coff-rs6000.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 584f087..14ed147 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 2fc1feb..d02835e 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);