bind_dlz: Fix CID 1347318 Unchecked return value
authorVolker Lendecke <vl@samba.org>
Thu, 7 Jan 2016 20:17:43 +0000 (21:17 +0100)
committerJeremy Allison <jra@samba.org>
Fri, 8 Jan 2016 01:37:18 +0000 (02:37 +0100)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source4/dns_server/dlz_bind9.c

index 7a76fe57962d88fd2924e59a4f461c2a58f5e84d..4c21a5ee79d5d87c6a91167493e513c8f9e23133 100644 (file)
@@ -1438,10 +1438,20 @@ static bool b9_record_match(struct dlz_bind9_data *state,
        switch (rec1->wType) {
        case DNS_TYPE_A:
                return strcmp(rec1->data.ipv4, rec2->data.ipv4) == 0;
-       case DNS_TYPE_AAAA:
-               inet_pton(AF_INET6, rec1->data.ipv6, &rec1_in_addr6);
-               inet_pton(AF_INET6, rec2->data.ipv6, &rec2_in_addr6);
+       case DNS_TYPE_AAAA: {
+               int ret;
+
+               ret = inet_pton(AF_INET6, rec1->data.ipv6, &rec1_in_addr6);
+               if (ret != 1) {
+                       return false;
+               }
+               ret = inet_pton(AF_INET6, rec2->data.ipv6, &rec2_in_addr6);
+               if (ret != 1) {
+                       return false;
+               }
+
                return memcmp(&rec1_in_addr6, &rec2_in_addr6, sizeof(rec1_in_addr6)) == 0;
+       }
        case DNS_TYPE_CNAME:
                return dns_name_equal(rec1->data.cname, rec2->data.cname);
        case DNS_TYPE_TXT: