From bbe265e08ba42380deaef81fc6aa4d781a9e01e0 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 3 Mar 2011 20:09:29 +0000 Subject: [PATCH] [dns] Fix memory leak in settings applicator Signed-off-by: Michael Brown --- src/net/udp/dns.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/net/udp/dns.c b/src/net/udp/dns.c index be7a98e7..2326284b 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;