]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/resolve/resolved-dns-rr.c
resolved: rr - SSHFP contains the fingerprint, not the key
[thirdparty/systemd.git] / src / resolve / resolved-dns-rr.c
index e9907eabc022a33fdc8181dfff372550eef8058c..2bc9f2b52056357108e0cfa4cda897316fed8d40 100644 (file)
@@ -276,7 +276,7 @@ DnsResourceRecord* dns_resource_record_unref(DnsResourceRecord *rr) {
                         break;
 
                 case DNS_TYPE_SSHFP:
-                        free(rr->sshfp.key);
+                        free(rr->sshfp.fingerprint);
                         break;
 
                 case DNS_TYPE_DNSKEY:
@@ -434,8 +434,8 @@ int dns_resource_record_equal(const DnsResourceRecord *a, const DnsResourceRecor
         case DNS_TYPE_SSHFP:
                 return a->sshfp.algorithm == b->sshfp.algorithm &&
                        a->sshfp.fptype == b->sshfp.fptype &&
-                       a->sshfp.key_size == b->sshfp.key_size &&
-                       memcmp(a->sshfp.key, b->sshfp.key, a->sshfp.key_size) == 0;
+                       a->sshfp.fingerprint_size == b->sshfp.fingerprint_size &&
+                       memcmp(a->sshfp.fingerprint, b->sshfp.fingerprint, a->sshfp.fingerprint_size) == 0;
 
         case DNS_TYPE_DNSKEY:
                 return a->dnskey.zone_key_flag == b->dnskey.zone_key_flag &&
@@ -527,12 +527,13 @@ static int format_timestamp_dns(char *buf, size_t l, time_t sec) {
 static char *format_types(Bitmap *types) {
         _cleanup_strv_free_ char **strv = NULL;
         _cleanup_free_ char *str = NULL;
+        Iterator i;
         unsigned type;
         int r;
 
-        BITMAP_FOREACH(type, types) {
+        BITMAP_FOREACH(type, types, i) {
                 if (dns_type_to_string(type)) {
-                        r = strv_extend(&strv, strdup(dns_type_to_string(type)));
+                        r = strv_extend(&strv, dns_type_to_string(type));
                         if (r < 0)
                                 return NULL;
                 } else {
@@ -542,7 +543,7 @@ static char *format_types(Bitmap *types) {
                         if (r < 0)
                                 return NULL;
 
-                        r = strv_extend(&strv, t);
+                        r = strv_consume(&strv, t);
                         if (r < 0)
                                 return NULL;
                 }
@@ -686,7 +687,7 @@ int dns_resource_record_to_string(const DnsResourceRecord *rr, char **ret) {
                 break;
 
         case DNS_TYPE_SSHFP:
-                t = hexmem(rr->sshfp.key, rr->sshfp.key_size);
+                t = hexmem(rr->sshfp.fingerprint, rr->sshfp.fingerprint_size);
                 if (!t)
                         return -ENOMEM;
 
@@ -775,7 +776,7 @@ int dns_resource_record_to_string(const DnsResourceRecord *rr, char **ret) {
         case DNS_TYPE_NSEC3: {
                 _cleanup_free_ char *salt = NULL, *hash = NULL;
 
-                if (rr->nsec3.salt_size) {
+                if (rr->nsec3.salt_size > 0) {
                         salt = hexmem(rr->nsec3.salt, rr->nsec3.salt_size);
                         if (!salt)
                                 return -ENOMEM;
@@ -794,7 +795,7 @@ int dns_resource_record_to_string(const DnsResourceRecord *rr, char **ret) {
                              rr->nsec3.algorithm,
                              rr->nsec3.flags,
                              rr->nsec3.iterations,
-                             rr->nsec3.salt_size ? salt : "-",
+                             rr->nsec3.salt_size > 0 ? salt : "-",
                              hash,
                              t);
                 if (r < 0)
@@ -808,7 +809,7 @@ int dns_resource_record_to_string(const DnsResourceRecord *rr, char **ret) {
                 if (!t)
                         return -ENOMEM;
 
-                r = asprintf(&s, "%s \\# %"PRIu8" %s", k, rr->generic.size, t);
+                r = asprintf(&s, "%s \\# %zu %s", k, rr->generic.size, t);
                 if (r < 0)
                         return -ENOMEM;
                 break;