sim: hw: rework code to avoid gcc warnings

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.
This commit is contained in:
Mike Frysinger 2021-01-09 00:54:57 -05:00
parent be2c78856d
commit b5a4a01af4
2 changed files with 8 additions and 7 deletions

View file

@ -1,3 +1,8 @@
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.

View file

@ -281,11 +281,10 @@ full_name_of_hw (struct hw *leaf,
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 */
@ -318,9 +317,6 @@ full_name_of_hw (struct hw *leaf,
strcat (buf, unit);
}
/* return it usefully */
if (buf == full_name)
buf = hw_strdup (leaf, full_name);
return buf;
}