wrstabs: sprintf sanitizer null destination pointer

Message ID ZMuS7vAXlR/aZ+C2@squeak.grove.modra.org
State Unresolved
Headers
Series wrstabs: sprintf sanitizer null destination pointer |

Checks

Context Check Description
snail/binutils-gdb-check warning Git am fail log

Commit Message

Alan Modra Aug. 3, 2023, 11:43 a.m. UTC
  gcc-2.12 seems to be ignoring __attribute__((__returns_nonnull__))
on xmalloc.

	* wrstabs.c (stab_method_type): Use stpcpy rather than sprintf
	or strcat.
  

Patch

diff --git a/binutils/wrstabs.c b/binutils/wrstabs.c
index 234a96f98a3..955b610cd59 100644
--- a/binutils/wrstabs.c
+++ b/binutils/wrstabs.c
@@ -1202,17 +1202,21 @@  stab_method_type (void *p, bool domainp, int argcount,
     len += strlen (args[i]);
 
   buf = xmalloc (len);
-
-  sprintf (buf, "#%s,%s", domain, return_type);
+  char *out = buf;
+  *out++ = '#';
+  out = stpcpy (out, domain);
+  *out++ = ',';
+  out = stpcpy (out, return_type);
   free (domain);
   free (return_type);
   for (i = 0; i < argcount; i++)
     {
-      strcat (buf, ",");
-      strcat (buf, args[i]);
+      *out++ = ',';
+      out = stpcpy (out, args[i]);
       free (args[i]);
     }
-  strcat (buf, ";");
+  *out++ = ';';
+  *out = 0;
 
   free (args);