Fix assertion failure when using -X and lock-file in configuration

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 4f68def5e9)
This commit is contained in:
Ondřej Surý 2023-10-26 10:54:28 +02:00
parent bf330dc3cc
commit d9fc95f842
No known key found for this signature in database
GPG key ID: 2820F37E873DEA41

View 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);
}