]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
Ensure packet_rrset_data is always initialised to zero upon allocation
authorUbuntu <rijswijk@fragtest.dnsjedi.org>
Wed, 29 Jul 2020 15:26:42 +0000 (15:26 +0000)
committerUbuntu <rijswijk@fragtest.dnsjedi.org>
Wed, 29 Jul 2020 15:26:42 +0000 (15:26 +0000)
dns64/dns64.c
respip/respip.c
util/data/msgencode.c
util/data/msgreply.c

index 5c70119a54de1711f751f189596b626b19f2d2e0..39fd8778c74797dc6f6f0559ac0dccbf2b6f758d 100644 (file)
@@ -722,7 +722,7 @@ dns64_synth_aaaa_data(const struct ub_packed_rrset_key* fk,
                *dd_out = NULL;
                return; /* integer overflow protection in alloc */
        }
-       if (!(dd = *dd_out = regional_alloc(region,
+       if (!(dd = *dd_out = regional_alloc_zero(region,
                  sizeof(struct packed_rrset_data)
                  + fd->count * (sizeof(size_t) + sizeof(time_t) +
                             sizeof(uint8_t*) + 2 + 16)))) {
index 6fa4f18851fdefbf6cc5325f60cabd5f837c4189..dd0bed8be834eb058bcab6a3c2461779bc7a407e 100644 (file)
@@ -523,7 +523,7 @@ copy_rrset(const struct ub_packed_rrset_key* key, struct regional* region)
                        return NULL; /* guard against integer overflow */
                dsize += data->rr_len[i];
        }
-       d = regional_alloc(region, dsize);
+       d = regional_alloc_zero(region, dsize);
        if(!d)
                return NULL;
        *d = *data;
index 5de9379a107dd1d282002e844e8c5d2811366762..6798b1799828b24c8b4a23af75b1603d3c22ac62 100644 (file)
@@ -486,7 +486,7 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
                        if(data->rr_ttl[j] < adjust)
                                sldns_buffer_write_u32(pkt,
                                        SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0);
-                       else    sldns_buffer_write_u32(pkt, data->rr_ttl[j]-adjust);
+                       else    sldns_buffer_write_u32(pkt, data->rr_ttl[j]-adjust);
                        if(c) {
                                if((r=compress_rdata(pkt, data->rr_data[j],
                                        data->rr_len[j], region, tree, c))
@@ -523,7 +523,7 @@ packed_rrset_encode(struct ub_packed_rrset_key* key, sldns_buffer* pkt,
                        if(data->rr_ttl[i] < adjust)
                                sldns_buffer_write_u32(pkt,
                                        SERVE_EXPIRED?SERVE_EXPIRED_REPLY_TTL:0);
-                       else    sldns_buffer_write_u32(pkt, data->rr_ttl[i]-adjust);
+                       else    sldns_buffer_write_u32(pkt, data->rr_ttl[i]-adjust);
                        /* rrsig rdata cannot be compressed, perform 100+ byte
                         * memcopy. */
                        sldns_buffer_write(pkt, data->rr_data[i],
index 5a6c1f853084fbbd9e25d90ba4d7b5bd0c53f0d6..6fce9a732be9c73f1983852c5309d45a3df572a0 100644 (file)
@@ -323,8 +323,8 @@ parse_create_rrset(sldns_buffer* pkt, struct rrset_parse* pset,
                (sizeof(size_t)+sizeof(uint8_t*)+sizeof(time_t)) + 
                pset->size;
        if(region)
-               *data = regional_alloc(region, s);
-       else    *data = malloc(s);
+               *data = regional_alloc_zero(region, s);
+       else    *data = calloc(1, s);
        if(!*data)
                return 0;
        /* copy & decompress */