diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2020-09-11 18:39:16 +0900 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-09-11 20:17:51 +0200 |
commit | 771436884dcc8c00fadedc0c4e055dc67d90d4d2 (patch) | |
tree | 3498b5543ab690df47cc76aa6ecc276da3f74048 | |
parent | fb2afc5f30c76965c3a2b5a0f3cc6170b59a6fa4 (diff) | |
download | systemd-771436884dcc8c00fadedc0c4e055dc67d90d4d2.tar.gz |
network: do not add prefix to RA if radv is not configured
Fixes #17017.
(cherry picked from commit 85b6a8110d21defb3d6cddace09ee21db4eb9766)
-rw-r--r-- | src/network/networkd-dhcp6.c | 6 | ||||
-rw-r--r-- | src/network/networkd-radv.c | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c index 8fbd2ff733..675f19c92d 100644 --- a/src/network/networkd-dhcp6.c +++ b/src/network/networkd-dhcp6.c @@ -160,7 +160,8 @@ static int dhcp6_pd_remove_old(Link *link, bool force) { if (k < 0) r = k; - (void) sd_radv_remove_prefix(link->radv, &route->dst.in6, 64); + if (link->radv) + (void) sd_radv_remove_prefix(link->radv, &route->dst.in6, 64); dhcp6_pd_free(hashmap_get(link->manager->dhcp6_prefixes, &route->dst.in6)); } @@ -201,7 +202,8 @@ int dhcp6_pd_remove(Link *link) { if (k < 0) r = k; - (void) sd_radv_remove_prefix(link->radv, &route->dst.in6, 64); + if (link->radv) + (void) sd_radv_remove_prefix(link->radv, &route->dst.in6, 64); dhcp6_pd_free(hashmap_get(link->manager->dhcp6_prefixes, &route->dst.in6)); } diff --git a/src/network/networkd-radv.c b/src/network/networkd-radv.c index e0c490baba..003a50b68b 100644 --- a/src/network/networkd-radv.c +++ b/src/network/networkd-radv.c @@ -681,7 +681,9 @@ int radv_add_prefix(Link *link, const struct in6_addr *prefix, uint8_t prefix_le int r; assert(link); - assert(link->radv); + + if (!link->radv) + return 0; r = sd_radv_prefix_new(&p); if (r < 0) |