forked from Imagelibrary/rtems
cpukit/libnetworking/rtems/rtems_dhcp.c: Fix leak on realloc failure for dhcp_hostname.
Closes #2405.
This commit is contained in:
committed by
Joel Sherrill
parent
1491f6948e
commit
c62129c5bc
@@ -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);
|
||||
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
|
||||
} else { /* dhcp_hostname == NULL */
|
||||
dhcp_hostname = strndup (p, len);
|
||||
}
|
||||
break;
|
||||
|
||||
case 7:
|
||||
|
||||
Reference in New Issue
Block a user