]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: initialize dot_servers before CLEANUP_ARRAY
authorLuca Boccassi <luca.boccassi@gmail.com>
Thu, 2 Jul 2026 17:47:27 +0000 (18:47 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Mon, 6 Jul 2026 12:42:21 +0000 (13:42 +0100)
If dns_resolvers_to_dot_addrs() fails (e.g. OOM) it returns without
assigning *ret_addrs, so the CLEANUP_ARRAY() cleanup would free an
uninitialized dot_servers pointer on the error return.

Follow-up for 3fd6708cde0fa4283e2335aca288a40a49406f3c

src/network/networkd-state-file.c

index 3c505f39e6c95e14c5962c660549b9d02bbc8f17..f077ed5f4b946a08355688dd3db757a5caee1280 100644 (file)
@@ -134,7 +134,7 @@ static int link_put_dns(Link *link, OrderedSet **s) {
 
                 r = sd_dhcp_lease_get_dnr(link->dhcp_lease, &resolvers);
                 if (r >= 0) {
-                        struct in_addr_full **dot_servers;
+                        struct in_addr_full **dot_servers = NULL;
                         size_t n = 0;
                         CLEANUP_ARRAY(dot_servers, n, in_addr_full_free_array);
 
@@ -163,7 +163,7 @@ static int link_put_dns(Link *link, OrderedSet **s) {
 
                 r = sd_dhcp6_lease_get_dnr(link->dhcp6_lease, &resolvers);
                 if (r >= 0) {
-                        struct in_addr_full **dot_servers;
+                        struct in_addr_full **dot_servers = NULL;
                         size_t n = 0;
                         CLEANUP_ARRAY(dot_servers, n, in_addr_full_free_array);