network: add missing link->network checks
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 17 Sep 2019 12:29:23 +0000 (21:29 +0900)
committerMichael Biebl <biebl@debian.org>
Tue, 19 Nov 2019 08:17:12 +0000 (08:17 +0000)
When the function is called, no network file may be assigned to the
link.

(cherry picked from commit b1b0b42e48303134731e017a108c6c334ef5f4c8)
(cherry picked from commit dd83d5879661d46f85457d139f683c920875eb44)

Gbp-Pq: Name network-add-missing-link-network-checks.patch

src/network/networkd-link.c

index f5bb78890a0c51ba0448ffb52dc66032471949fa..77df151cddc1d283c0008518a7e91145acb856c1 100644 (file)
@@ -2393,9 +2393,9 @@ static int link_drop_foreign_config(Link *link) {
                         continue;
 
                 if (link_address_is_dynamic(link, address)) {
-                        if (FLAGS_SET(link->network->keep_configuration, KEEP_CONFIGURATION_DHCP))
+                        if (link->network && FLAGS_SET(link->network->keep_configuration, KEEP_CONFIGURATION_DHCP))
                                 continue;
-                } else if (FLAGS_SET(link->network->keep_configuration, KEEP_CONFIGURATION_STATIC))
+                } else if (link->network && FLAGS_SET(link->network->keep_configuration, KEEP_CONFIGURATION_STATIC))
                         continue;
 
                 if (link_is_static_address_configured(link, address)) {
@@ -2435,11 +2435,11 @@ static int link_drop_foreign_config(Link *link) {
                     in_addr_equal(AF_INET6, &route->dst, &(union in_addr_union) { .in6 = {{{ 0xff,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 }}} }))
                         continue;
 
-                if (route->protocol == RTPROT_STATIC &&
+                if (route->protocol == RTPROT_STATIC && link->network &&
                     FLAGS_SET(link->network->keep_configuration, KEEP_CONFIGURATION_STATIC))
                         continue;
 
-                if (route->protocol == RTPROT_DHCP &&
+                if (route->protocol == RTPROT_DHCP && link->network &&
                     FLAGS_SET(link->network->keep_configuration, KEEP_CONFIGURATION_DHCP))
                         continue;