diff options
| author | Michael Brown | 2011-03-03 21:09:29 +0100 |
|---|---|---|
| committer | Michael Brown | 2011-03-03 21:09:29 +0100 |
| commit | bbe265e08ba42380deaef81fc6aa4d781a9e01e0 (patch) | |
| tree | 21b138f7213631f8dad721dd8c53c0fe9e1ad671 | |
| parent | [settings] Make fetch_string_setting_copy() easier to use (diff) | |
| download | ipxe-bbe265e08ba42380deaef81fc6aa4d781a9e01e0.tar.gz ipxe-bbe265e08ba42380deaef81fc6aa4d781a9e01e0.tar.xz ipxe-bbe265e08ba42380deaef81fc6aa4d781a9e01e0.zip | |
[dns] Fix memory leak in settings applicator
Signed-off-by: Michael Brown <mcb30@ipxe.org>
| -rw-r--r-- | src/net/udp/dns.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/net/udp/dns.c b/src/net/udp/dns.c index be7a98e7f..2326284bf 100644 --- a/src/net/udp/dns.c +++ b/src/net/udp/dns.c @@ -612,16 +612,23 @@ static int apply_dns_settings ( void ) { ( struct sockaddr_in * ) &nameserver; int len; + /* Fetch DNS server address */ + nameserver.st_family = 0; if ( ( len = fetch_ipv4_setting ( NULL, &dns_setting, &sin_nameserver->sin_addr ) ) >= 0 ){ - sin_nameserver->sin_family = AF_INET; + nameserver.st_family = AF_INET; DBG ( "DNS using nameserver %s\n", inet_ntoa ( sin_nameserver->sin_addr ) ); } /* Get local domain DHCP option */ + free ( localdomain ); if ( ( len = fetch_string_setting_copy ( NULL, &domain_setting, - &localdomain ) ) >= 0 ) + &localdomain ) ) < 0 ) { + DBG ( "DNS could not fetch local domain: %s\n", + strerror ( len ) ); + } + if ( localdomain ) DBG ( "DNS local domain %s\n", localdomain ); return 0; |
