cpukit/libnetworking/rtems/rtems_dhcp.c: Fix leak on realloc failure for dhcp_hostname.

Closes #2405.
This commit is contained in:
Martin Galvan
2015-09-02 16:54:25 -05:00
committed by Joel Sherrill
parent 1491f6948e
commit c62129c5bc

View File

@@ -394,15 +394,23 @@ process_options (unsigned char *optbuf, int optbufSize)
printf ("dhcpc: hostname >= %d bytes\n", MAXHOSTNAMELEN);
len = MAXHOSTNAMELEN-1;
}
if (sethostname (p, len) < 0)
if (sethostname (p, len) < 0) {
printf ("dhcpc: can't set host name");
}
if (dhcp_hostname != NULL)
{
dhcp_hostname = realloc (dhcp_hostname, len);
strncpy (dhcp_hostname, p, len);
}
else
char *tmp = realloc (dhcp_hostname, len);
if (tmp != NULL) {
dhcp_hostname = tmp;
strncpy (dhcp_hostname, p, len);
} else { /* realloc failed */
printf ("dhcpc: realloc failed (%s:%d)", __FILE__, __LINE__);
free (dhcp_hostname);
dhcp_hostname = NULL;
}
} else { /* dhcp_hostname == NULL */
dhcp_hostname = strndup (p, len);
}
break;
case 7: