]> git.ozlabs.org Git - petitboot/commitdiff
discover/network: Fix incorrect static DNS servers in resolv.conf
authorJeremy Kerr <jk@ozlabs.org>
Tue, 25 Feb 2014 09:04:17 +0000 (17:04 +0800)
committerJeremy Kerr <jk@ozlabs.org>
Tue, 25 Feb 2014 12:55:21 +0000 (20:55 +0800)
We currently have a bug where we write NUL characters into
/etc/resolv.conf, when using static DNS server configurations:

With a network setting of: dns,9.0.6.11,9.0.7.1

We generate a resolv.conf containing:

 nameserver 9.0.6.11^@nameserver 9.0.7.1^@

This is due to an off-by-one bug when terminating the nameserver
entries.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/network.c

index c300f3dc7719619aa6092df5b476837ff8177b74..9acd4cb5f0cf695637c4d087a066d87947442eb9 100644 (file)
@@ -533,7 +533,7 @@ static void network_init_dns(struct network *network)
                buf = talloc_realloc(network, buf, char, len + dns_conf_len + 1);
                memcpy(buf + len, dns_conf, dns_conf_len);
                len += dns_conf_len;
                buf = talloc_realloc(network, buf, char, len + dns_conf_len + 1);
                memcpy(buf + len, dns_conf, dns_conf_len);
                len += dns_conf_len;
-               buf[len - 1] = '\0';
+               buf[len] = '\0';
                modified = true;
 
                talloc_free(dns_conf);
                modified = true;
 
                talloc_free(dns_conf);