Fix read of uninitialized memory

Not a dangerous one though, but still...
This commit is contained in:
Willem Toorop 2015-07-08 15:36:39 +02:00
parent e8030b34d2
commit d4849dc0ba
2 changed files with 9 additions and 3 deletions

View File

@ -499,13 +499,17 @@ getdns_indent(size_t indent)
} /* getdns_indent */ } /* getdns_indent */
static int static int
priv_getdns_bindata_is_dname(struct getdns_bindata *bindata) priv_getdns_bindata_is_dname(getdns_bindata *bindata)
{ {
size_t i = 0, n_labels = 0; size_t i = 0, n_labels = 0;
while (i < bindata->size) {
while (i < bindata->size && bindata->data[i]) {
i += ((size_t)bindata->data[i]) + 1; i += ((size_t)bindata->data[i]) + 1;
n_labels++; n_labels++;
} }
if (i < bindata->size && !bindata->data[i])
i++;
return i == bindata->size && n_labels > 1 && return i == bindata->size && n_labels > 1 &&
bindata->data[bindata->size - 1] == 0; bindata->data[bindata->size - 1] == 0;
} }

View File

@ -513,7 +513,8 @@ priv_getdns_create_reply_dict(getdns_context *context, getdns_network_req *req,
uint8_t canonical_name_space[256], uint8_t canonical_name_space[256],
*canonical_name = canonical_name_space; *canonical_name = canonical_name_space;
uint8_t owner_name_space[256], *owner_name; uint8_t owner_name_space[256], *owner_name;
size_t canonical_name_len = 256, owner_name_len; size_t canonical_name_len = sizeof(canonical_name_space),
owner_name_len = sizeof(owner_name_space);
int new_canonical = 0; int new_canonical = 0;
uint16_t rr_type; uint16_t rr_type;
getdns_dict *header = NULL; getdns_dict *header = NULL;
@ -546,6 +547,7 @@ priv_getdns_create_reply_dict(getdns_context *context, getdns_network_req *req,
goto error; goto error;
canonical_name = req->owner->name; canonical_name = req->owner->name;
canonical_name_len = req->owner->name_len;
for ( rr_iter = priv_getdns_rr_iter_init(&rr_iter_storage for ( rr_iter = priv_getdns_rr_iter_init(&rr_iter_storage
, req->response , req->response