From 6115d71c23047760e0c4c2c9bf9bcc7cda059cdc Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Mon, 12 Dec 2011 21:33:00 +0200 Subject: [PATCH] adns_create_context: do zone_init before impl_init The latter can fail, thus crashing adns_free_context(). --- src/dnslookup.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/dnslookup.c b/src/dnslookup.c index 280774b..c525bf8 100644 --- a/src/dnslookup.c +++ b/src/dnslookup.c @@ -747,16 +747,21 @@ static void req_free(struct AANode *node, void *arg) struct DNSContext *adns_create_context(void) { - struct DNSContext *ctx = calloc(1, sizeof(*ctx)); + struct DNSContext *ctx; + + log_debug("adns_create_context: %s", adns_get_backend()); + + ctx = calloc(1, sizeof(*ctx)); if (!ctx) return NULL; aatree_init(&ctx->req_tree, req_cmp, req_free); + zone_init(ctx); + if (!impl_init(ctx)) { adns_free_context(ctx); return NULL; } - zone_init(ctx); return ctx; } -- 2.40.0