chiark / gitweb /
resolved: properly check return value of dns_resource_record_equal()
authorLennart Poettering <lennart@poettering.net>
Wed, 6 Aug 2014 14:14:53 +0000 (16:14 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 11 Aug 2014 13:06:22 +0000 (15:06 +0200)
src/resolve/resolved-dns-cache.c
src/resolve/resolved-dns-packet.c
src/resolve/resolved-dns-zone.c

index 40fb6c39844c484ef0888978c55167dd0142670f..696eb9d523fa62011f247446ae8404348cebfea9 100644 (file)
@@ -224,7 +224,7 @@ static DnsCacheItem* dns_cache_get(DnsCache *c, DnsResourceRecord *rr) {
         assert(rr);
 
         LIST_FOREACH(by_key, i, hashmap_get(c->by_key, rr->key))
-                if (i->rr && dns_resource_record_equal(i->rr, rr))
+                if (i->rr && dns_resource_record_equal(i->rr, rr) > 0)
                         return i;
 
         return NULL;
index b97fd17963201e75614c1895dd7730625574be01..4f9503803be53b66c02b06cbeb151cf779554663 100644 (file)
@@ -1029,6 +1029,8 @@ static bool loc_size_ok(uint8_t size) {
 }
 
 static int dnskey_parse_flags(DnsResourceRecord *rr, uint16_t flags) {
+        assert(rr);
+
         if (flags & ~(DNSKEY_FLAG_SEP | DNSKEY_FLAG_ZONE_KEY))
                 return -EBADMSG;
 
index 72321d0c6b2c8db70ce65fdd26db2f28c3304a88..ed477591062187210d0a02c3e17b83f427f17d86 100644 (file)
@@ -104,7 +104,7 @@ static DnsZoneItem* dns_zone_get(DnsZone *z, DnsResourceRecord *rr) {
         assert(rr);
 
         LIST_FOREACH(by_key, i, hashmap_get(z->by_key, rr->key))
-                if (dns_resource_record_equal(i->rr, rr))
+                if (dns_resource_record_equal(i->rr, rr) > 0)
                         return i;
 
         return NULL;