[binutils-gdb] nds32: __builtin_strncpy bound equals destination size

Alan Modra amodra@sourceware.org
Thu May 27 01:29:53 GMT 2021


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=badf836a0c727608d7660949bf353525ee2d8252

commit badf836a0c727608d7660949bf353525ee2d8252
Author: Alan Modra <amodra@gmail.com>
Date:   Wed May 26 22:23:44 2021 +0930

    nds32: __builtin_strncpy bound equals destination size
    
            * config/tc-nds32.c (do_pseudo_push_bhwd, do_pseudo_pop_bhwd),
            (do_pseudo_pusha, do_pseudo_pushi): Avoid fortify strncpy bound
            error.

Diff:
---
 gas/ChangeLog         |  6 ++++++
 gas/config/tc-nds32.c | 16 ++++++++--------
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 31f9e36ce9a..d2f5f764387 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2021-05-27  Alan Modra  <amodra@gmail.com>
+
+	* config/tc-nds32.c (do_pseudo_push_bhwd, do_pseudo_pop_bhwd),
+	(do_pseudo_pusha, do_pseudo_pushi): Avoid fortify strncpy bound
+	error.
+
 2021-05-26  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR ld/27905
diff --git a/gas/config/tc-nds32.c b/gas/config/tc-nds32.c
index e5c0eaf0866..c5bad6b476a 100644
--- a/gas/config/tc-nds32.c
+++ b/gas/config/tc-nds32.c
@@ -3255,8 +3255,8 @@ do_pseudo_push_bhwd (int argc ATTRIBUTE_UNUSED, char *argv[],
 
   if (argc == 2)
     {
-      strncpy (location, argv[1], 8);
-      location[7] = '\0';
+      strncpy (location, argv[1], sizeof (location) - 1);
+      location[sizeof (location) - 1] = '\0';
     }
 
   md_assemblef ("l.%c $ta,%s", size, argv[0]);
@@ -3287,8 +3287,8 @@ do_pseudo_pop_bhwd (int argc ATTRIBUTE_UNUSED, char *argv[],
 
   if (argc == 3)
     {
-      strncpy (location, argv[2], 8);
-      location[7] = '\0';
+      strncpy (location, argv[2], sizeof (location) - 1);
+      location[sizeof (location) - 1] = '\0';
     }
 
   if ((pv & 0x3) == 0x3) /* double-word */
@@ -3310,8 +3310,8 @@ do_pseudo_pusha (int argc ATTRIBUTE_UNUSED, char *argv[],
 
   if (argc == 2)
     {
-      strncpy (location, argv[1], 8);
-      location[7] = '\0';
+      strncpy (location, argv[1], sizeof (location) - 1);
+      location[sizeof (location) - 1] = '\0';
     }
 
   md_assemblef ("la $ta,%s", argv[0]);
@@ -3327,8 +3327,8 @@ do_pseudo_pushi (int argc ATTRIBUTE_UNUSED, char *argv[],
 
   if (argc == 2)
     {
-      strncpy (location, argv[1], 8);
-      location[7] = '\0';
+      strncpy (location, argv[1], sizeof (location) - 1);
+      location[sizeof (location) - 1] = '\0';
     }
 
   md_assemblef ("li $ta,%s", argv[0]);


More information about the Binutils-cvs mailing list