resolve: use memcmp_safe() and memcpy_safe()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 8 Aug 2018 07:23:20 +0000 (16:23 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 8 Aug 2018 08:11:56 +0000 (17:11 +0900)
As the length of salt in NSEC3 may be zero.

Fixes #9757.

src/resolve/resolved-dns-dnssec.c
src/resolve/resolved-dns-packet.c

index e0d70c2..2c8514a 100644 (file)
@@ -1380,7 +1380,7 @@ static int nsec3_is_good(DnsResourceRecord *rr, DnsResourceRecord *nsec3) {
                 return 0;
         if (rr->nsec3.salt_size != nsec3->nsec3.salt_size)
                 return 0;
-        if (memcmp(rr->nsec3.salt, nsec3->nsec3.salt, rr->nsec3.salt_size) != 0)
+        if (memcmp_safe(rr->nsec3.salt, nsec3->nsec3.salt, rr->nsec3.salt_size) != 0)
                 return 0;
 
         a = dns_resource_key_name(rr->key);
index 2cc606f..6a615e3 100644 (file)
@@ -383,7 +383,7 @@ int dns_packet_append_blob(DnsPacket *p, const void *d, size_t l, size_t *start)
         if (r < 0)
                 return r;
 
-        memcpy(q, d, l);
+        memcpy_safe(q, d, l);
         return 0;
 }