Newer gcc thinks we might return a pointer to a stack buffer, but
we don't -- we strdup it before returning. Rework the code to just
malloc the buffer from the start and avoid the stack+strdup.
+2021-01-09 Mike Frysinger <vapier@gentoo.org>
+
+ * hw-base.c (full_name_of_hw): Delete full_name. Replace
+ hw_strdup call with hw_malloc.
+
2021-01-09 Mike Frysinger <vapier@gentoo.org>
* cgen-par.c: Include stdlib.h.
unsigned sizeof_buf)
{
/* get a buffer */
- char full_name[1024];
- if (buf == (char*)0)
+ if (buf == NULL)
{
- buf = full_name;
- sizeof_buf = sizeof (full_name);
+ sizeof_buf = 1024;
+ buf = hw_malloc (leaf, sizeof_buf);
}
/* use head recursion to construct the path */
strcat (buf, unit);
}
- /* return it usefully */
- if (buf == full_name)
- buf = hw_strdup (leaf, full_name);
return buf;
}