]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Fix assertion failure when using -X and lock-file in configuration
authorOndřej Surý <ondrej@isc.org>
Thu, 26 Oct 2023 08:54:28 +0000 (10:54 +0200)
committerOndřej Surý <ondrej@isc.org>
Thu, 26 Oct 2023 11:59:46 +0000 (13:59 +0200)
When 'lock-file <lockfile1>' was used in configuration at the same time
as using `-X <lockfile2>` in `named` invocation, there was an invalid
logic that would lead to a double isc_mem_strdup() call on the
<lockfile2> value.

Skip the second allocation if `lock-file` is being used in
configuration, so the <lockfile2> is used only single time.

(cherry picked from commit 4f68def5e966f0d359833b64837e25f0cb60fb6a)

bin/named/server.c

index 2f21fc5213190c9f3176cfd680b43242c17ff29c..3295082f9d5246966859663d19765ffed1187275 100644 (file)
@@ -8443,10 +8443,7 @@ check_lockfile(named_server_t *server, const cfg_obj_t *config,
                if (server->lockfile == NULL) {
                        return (ISC_R_NOMEMORY);
                }
-       }
-
-       if (named_g_forcelock && named_g_defaultlockfile != NULL) {
-               INSIST(server->lockfile == NULL);
+       } else if (named_g_forcelock && named_g_defaultlockfile != NULL) {
                server->lockfile = isc_mem_strdup(server->mctx,
                                                  named_g_defaultlockfile);
        }