ISC_LIST_INIT(event->answerlist);
rctx = isc_mem_get(mctx, sizeof(*rctx));
- if (rctx == NULL)
- result = ISC_R_NOMEMORY;
- else {
- isc_mutex_init(&rctx->lock);
- }
- if (result != ISC_R_SUCCESS)
- goto cleanup;
+ isc_mutex_init(&rctx->lock);
result = getrdataset(mctx, &rdataset);
if (result != ISC_R_SUCCESS)
}
ctx = isc_mem_get(client->mctx, sizeof(*ctx));
- if (ctx == NULL)
- result = ISC_R_NOMEMORY;
- else {
- isc_mutex_init(&ctx->lock);
- }
- if (result != ISC_R_SUCCESS)
- goto cleanup;
+ isc_mutex_init(&ctx->lock);
ctx->client = client;
ISC_LINK_INIT(ctx, link);
isc_refcount_decrement(&client->references);
- cleanup:
- if (ctx != NULL) {
- LOCK(&client->lock);
- ISC_LIST_UNLINK(client->reqctxs, ctx, link);
- UNLOCK(&client->lock);
- isc_mutex_destroy(&ctx->lock);
- isc_mem_put(client->mctx, ctx, sizeof(*ctx));
- }
- if (event != NULL)
- isc_event_free(ISC_EVENT_PTR(&event));
+ LOCK(&client->lock);
+ ISC_LIST_UNLINK(client->reqctxs, ctx, link);
+ UNLOCK(&client->lock);
+ isc_mutex_destroy(&ctx->lock);
+ isc_mem_put(client->mctx, ctx, sizeof(*ctx));
+
+ isc_event_free(ISC_EVENT_PTR(&event));
isc_task_detach(&tclone);
dns_view_detach(&view);