]> granicus.if.org Git - pgbouncer/commitdiff
adns_create_context: do zone_init before impl_init
authorMarko Kreen <markokr@gmail.com>
Mon, 12 Dec 2011 19:33:00 +0000 (21:33 +0200)
committerMarko Kreen <markokr@gmail.com>
Mon, 12 Dec 2011 19:35:08 +0000 (21:35 +0200)
The latter can fail, thus crashing adns_free_context().

src/dnslookup.c

index 280774b6d33debcd3cadd14444db63e71796342a..c525bf8b14e7ec62f0c19c3e25a900d66069f96a 100644 (file)
@@ -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;
 }