diff options
author | Lennart Poettering <lennart@poettering.net> | 2018-11-30 19:34:17 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2018-11-30 22:19:28 +0100 |
commit | 59ea6e57a5249c13f4918b62b3b01c77859eb4ae (patch) | |
tree | e6a48453e9ad06650eb597935b93fc8abd96e35a /src/libsystemd-network/sd-radv.c | |
parent | b806f0b0aa043656470dab27bb9d1bd6015e1948 (diff) | |
download | systemd-59ea6e57a5249c13f4918b62b3b01c77859eb4ae.tar.gz systemd-59ea6e57a5249c13f4918b62b3b01c77859eb4ae.tar.bz2 systemd-59ea6e57a5249c13f4918b62b3b01c77859eb4ae.zip |
networkd: refuse IPv6 RADV prefixes that lack Prefix= setting
Fixes: #9589
Diffstat (limited to 'src/libsystemd-network/sd-radv.c')
-rw-r--r-- | src/libsystemd-network/sd-radv.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libsystemd-network/sd-radv.c b/src/libsystemd-network/sd-radv.c index fe458bcaa6..098e01fb82 100644 --- a/src/libsystemd-network/sd-radv.c +++ b/src/libsystemd-network/sd-radv.c @@ -503,6 +503,10 @@ _public_ int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p, int dynamic) { if (!p) return -EINVAL; + /* Refuse prefixes that don't have a prefix set */ + if (IN6_IS_ADDR_UNSPECIFIED(&p->opt.in6_addr)) + return -ENOEXEC; + LIST_FOREACH(prefix, cur, ra->prefixes) { r = in_addr_prefix_intersect(AF_INET6, |