]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
cleanup properly if we fail to initialize ns_client structure
authorWitold Kręcicki <wpk@isc.org>
Thu, 16 Jan 2020 10:53:31 +0000 (11:53 +0100)
committerWitold Kręcicki <wpk@isc.org>
Mon, 20 Jan 2020 21:28:36 +0000 (22:28 +0100)
If taskmgr is shutting down ns_client_setup will fail to create
a task for the newly created client, we weren't cleaning up already
created/attached things (memory context, server, clientmgr).

lib/ns/client.c

index ad99883a23e50841807c0419cdbf79ce2c2f992d..9ef8afa0944b7d3bf025745523b79e9c23cefe32 100644 (file)
@@ -2333,6 +2333,16 @@ ns__client_setup(ns_client_t *client, ns_clientmgr_t *mgr, bool new) {
                isc_task_detach(&client->task);
        }
 
+       if (client->manager != NULL) {
+               clientmgr_detach(&client->manager);
+       }
+       if (client->mctx != NULL) {
+               isc_mem_detach(&client->mctx);
+       }
+       if (client->sctx != NULL) {
+               ns_server_detach(&client->sctx);
+       }
+
        return (result);
 }