* reserve slots after it for references to Lua callbacks. */
const size_t api_length = offsetof(kr_layer_api_t, cb_slots)
+ (SLOT_count * sizeof(module->layer->cb_slots[0]));
- kr_layer_api_t *api = malloc(api_length);
+ kr_layer_api_t *api = calloc(1, api_length);
if (api) {
- memset(api, 0, api_length);
LAYER_REGISTER(L, api, begin);
LAYER_REGISTER(L, api, finish);
LAYER_REGISTER(L, api, consume);
};
/* Create request context */
- struct request_ctx *ctx = mm_alloc(&pool, sizeof(*ctx));
+ struct request_ctx *ctx = mm_calloc(&pool, 1, sizeof(*ctx));
if (!ctx) {
pool_release(worker, pool.ctx);
return NULL;
}
- memset(ctx, 0, sizeof(*ctx));
-
/* TODO Relocate pool to struct request */
ctx->worker = worker;
if (session) {
}
/* Create resolution task */
- struct qr_task *task = mm_alloc(&ctx->req.pool, sizeof(*task));
+ struct qr_task *task = mm_calloc(&ctx->req.pool, 1, sizeof(*task));
if (!task) {
return NULL;
}
- memset(task, 0, sizeof(*task)); /* avoid accidentally unintialized fields */
/* Create packet buffers for answer and subrequests */
knot_pkt_t *pktbuf = knot_pkt_new(NULL, pktbuf_max, &ctx->req.pool);
* @return pointer to zone import context or NULL. */
static zone_import_ctx_t *zi_ctx_alloc()
{
- return (zone_import_ctx_t *)malloc(sizeof(zone_import_ctx_t));
+ return calloc(1, sizeof(zone_import_ctx_t));
}
/** @internal Free zone import context. */
zi_ctx_free(z_import);
return NULL;
}
- memset(z_import, 0, sizeof(*z_import));
z_import->pool.ctx = mp;
z_import->worker = worker;
int ret = zi_reset(z_import, 0);
knot_pkt_put_question(answer, dname, rrclass, rrtype);
knot_pkt_begin(answer, KNOT_ANSWER);
- struct kr_qflags options;
- memset(&options, 0, sizeof(options));
+ struct kr_qflags options = { 0 };
options.DNSSEC_WANT = true;
options.NO_MINIMIZE = true;
}
/* Allocate pkt->rr_info to be certain, but just leave it zeroed. */
mm_free(&pkt->mm, pkt->rr_info);
- pkt->rr_info = mm_alloc(&pkt->mm, sizeof(pkt->rr_info[0]) * pkt->rrset_allocd);
+ pkt->rr_info = mm_calloc(&pkt->mm, pkt->rrset_allocd, sizeof(pkt->rr_info[0]));
if (!pkt->rr_info) {
return kr_error(ENOMEM);
}
- memset(pkt->rr_info, 0, sizeof(pkt->rr_info[0]) * pkt->rrset_allocd);
return kr_ok();
}
static struct kr_query *query_create(knot_mm_t *pool, const knot_dname_t *name, uint32_t uid)
{
- struct kr_query *qry = mm_alloc(pool, sizeof(struct kr_query));
+ struct kr_query *qry = mm_calloc(pool, 1, sizeof(*qry));
if (qry == NULL) {
return NULL;
}
- memset(qry, 0, sizeof(struct kr_query));
if (name != NULL) {
qry->sname = knot_dname_copy(name, pool);
if (qry->sname == NULL) {
return NULL;
}
- struct kr_transport *transport = mm_alloc(mempool, sizeof(struct kr_transport));
- memset(transport, 0, sizeof(struct kr_transport));
+ struct kr_transport *transport = mm_calloc(mempool, 1, sizeof(*transport));
int choice = 0;
if (kr_rand_coin(EPSILON_NOMIN, EPSILON_DENOM) || choices_len == 0) {
void kr_server_selection_init(struct kr_query *qry)
{
struct knot_mm *mempool = &qry->request->pool;
- struct local_state *local_state = mm_alloc(mempool, sizeof(struct local_state));
- memset(local_state, 0, sizeof(struct local_state));
+ struct local_state *local_state = mm_calloc(mempool, 1, sizeof(*local_state));
if (qry->flags.FORWARD || qry->flags.STUB) {
qry->server_selection = (struct kr_server_selection){
struct kr_request *req)
{
assert(req->selection_context.forwarding_targets.at);
- *local_state = mm_alloc(mm, sizeof(struct forward_local_state));
- memset(*local_state, 0, sizeof(struct forward_local_state));
+ *local_state = mm_calloc(mm, 1, sizeof(struct forward_local_state));
struct forward_local_state *forward_state = *local_state;
forward_state->targets = &req->selection_context.forwarding_targets;
- size_t as_bytes = sizeof(struct address_state) * forward_state->targets->len;
- forward_state->addr_states = mm_alloc(mm, as_bytes);
- memset(forward_state->addr_states, 0, as_bytes);
+ forward_state->addr_states = mm_calloc(mm, forward_state->targets->len,
+ sizeof(struct address_state));
}
void forward_choose_transport(struct kr_query *qry,
void iter_local_state_alloc(struct knot_mm *mm, void **local_state)
{
- *local_state = mm_alloc(mm, sizeof(struct iter_local_state));
- memset(*local_state, 0, sizeof(struct iter_local_state));
+ *local_state = mm_calloc(mm, 1, sizeof(struct iter_local_state));
}
static struct address_state *get_address_state(struct iter_local_state *local_state,
knot_dname_size(dname));
if (!*val) {
/* We encountered this name for the first time. */
- *val = mm_alloc(mm, sizeof(struct iter_name_state));
- memset(*val, 0, sizeof(struct iter_name_state));
+ *val = mm_calloc(mm, 1, sizeof(struct iter_name_state));
}
struct iter_name_state *name_state = *val;
name_state->generation = current_generation;
address_len);
if (!*tval) {
/* We have have not seen this address before. */
- *tval = mm_alloc(mm, sizeof(struct address_state));
- memset(*tval, 0, sizeof(struct address_state));
+ *tval = mm_calloc(mm, 1, sizeof(struct address_state));
}
struct address_state *address_state = *tval;
address_state->generation = current_generation;
return kr_error(ret);
}
- ranked_rr_array_entry_t *entry = mm_alloc(pool, sizeof(ranked_rr_array_entry_t));
+ ranked_rr_array_entry_t *entry = mm_calloc(pool, 1, sizeof(*entry));
if (!entry) {
return kr_error(ENOMEM);
}
- memset(entry, 0, sizeof(*entry)); /* default all to zeros */
knot_rrset_t *rr_new = knot_rrset_new(rr->owner, rr->type, rr->rclass, rr->ttl, pool);
if (!rr_new) {
};
module->props = props;
- struct stat_data *data = malloc(sizeof(*data));
+ struct stat_data *data = calloc(1, sizeof(*data));
if (!data) {
return kr_error(ENOMEM);
}
- memset(data, 0, sizeof(*data));
module->data = data;
lru_create(&data->frequent, FREQUENT_COUNT, NULL, NULL);
return kr_ok();
module->layer = &layer;
/* allocated memory for internal data */
- struct dnstap_data *data = malloc(sizeof(*data));
+ struct dnstap_data *data = calloc(1, sizeof(*data));
if (!data) {
return kr_error(ENOMEM);
}
- memset(data, 0, sizeof(*data));
/* save pointer to internal struct in module for future reference */
module->data = data;
};
module->props = props;
- struct stat_data *data = malloc(sizeof(*data));
+ struct stat_data *data = calloc(1, sizeof(*data));
if (!data) {
return kr_error(ENOMEM);
}
- memset(data, 0, sizeof(*data));
data->map = map_make(NULL);
module->data = data;
lru_create(&data->queries.frequent, FREQUENT_COUNT, NULL, NULL);
*/
static inline void test_random_rr(knot_rrset_t *rr, uint32_t ttl)
{
- static uint8_t owner_buf[KNOT_DNAME_MAXLEN];
+ static uint8_t owner_buf[KNOT_DNAME_MAXLEN] = { 0 };
static uint8_t rdata_buf[65535];
knot_rdata_t *rdata = (knot_rdata_t *)rdata_buf;
uint8_t tmp_buf[KNOT_DNAME_MAXLEN];
/* Create random label. */
- memset(owner_buf, 0, sizeof(owner_buf));
uint8_t label_len = num % KNOT_DNAME_MAXLABELLEN;
owner_buf[0] = label_len;
test_randstr((char *)(owner_buf + 1), label_len);