]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: refuse revoked DNSKEYs in trust anchor
authorLennart Poettering <lennart@poettering.net>
Sun, 3 Jan 2016 16:57:44 +0000 (17:57 +0100)
committerLennart Poettering <lennart@poettering.net>
Sun, 3 Jan 2016 16:57:44 +0000 (17:57 +0100)
src/resolve/resolved-dns-trust-anchor.c

index 03c5b9406e9e636bfe6d90f2a9cc998a78810c51..bcb31bd426581c5a5a6b30e8a16f6927930ac1fd 100644 (file)
@@ -188,6 +188,14 @@ static int dns_trust_anchor_load_positive(DnsTrustAnchor *d, const char *path, u
                 r = safe_atou16(flags, &f);
                 if (r < 0)
                         return log_warning_errno(r, "Failed to parse DNSKEY flags field %s on line %s:%u", flags, path, line);
+                if ((f & DNSKEY_FLAG_ZONE_KEY) == 0) {
+                        log_warning("DNSKEY lacks zone key bit set on line %s:%u", path, line);
+                        return -EINVAL;
+                }
+                if ((f & DNSKEY_FLAG_REVOKE)) {
+                        log_warning("DNSKEY is already revoked on line %s:%u", path, line);
+                        return -EINVAL;
+                }
 
                 a = dnssec_algorithm_from_string(algorithm);
                 if (a < 0) {