]> git.ozlabs.org Git - petitboot/blobdiff - discover/network.c
discover: cleanup allocated data
[petitboot] / discover / network.c
index c853a97b0cf21d8350f702d3c83dac780a79c3b5..edb7358b5c36618cc6ee46d94cb7e1fb2f789483 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "file.h"
 #include "network.h"
+#include "sysinfo.h"
 #include "device-handler.h"
 
 #define HWADDR_SIZE    6
@@ -406,6 +407,12 @@ static int network_handle_nlmsg(struct network *network, struct nlmsghdr *nlmsg)
                memcpy(interface->hwaddr, ifaddr, sizeof(interface->hwaddr));
                strncpy(interface->name, ifname, sizeof(interface->name) - 1);
                add_interface(network, interface);
+
+               /* tell the sysinfo code about this interface */
+               if (strcmp(interface->name, "lo"))
+                       system_info_register_interface(
+                                       sizeof(interface->hwaddr),
+                                       interface->hwaddr, interface->name);
        }
 
        configure_interface(network, interface,
@@ -473,9 +480,10 @@ static void network_init_dns(struct network *network)
                }
 
                dns_conf_len = strlen(dns_conf);
-               buf = talloc_realloc(network, buf, char, 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';
                modified = true;
 
                talloc_free(dns_conf);