wrstabs: sprintf sanitizer null destination pointer
Alan Modra
amodra@gmail.com
Thu Aug 3 11:43:42 GMT 2023
gcc-2.12 seems to be ignoring __attribute__((__returns_nonnull__))
on xmalloc.
* wrstabs.c (stab_method_type): Use stpcpy rather than sprintf
or strcat.
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);
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list