*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)))) {
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;
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))
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],
(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 */