From b260f7be90a20547bbbc456e08d9b4ba93905f01 Mon Sep 17 00:00:00 2001 From: Colin Vidal Date: Tue, 25 Nov 2025 15:34:26 +0100 Subject: [PATCH] check remote-servers list correctness `check.c` only checks if `remote-servers`, `primaries`, etc. are not duplicated inside the configuration file, but does not check the correctness of its definition. This commit fixes this by calling `validate_remotes()` for each `remote-servers` (and other aliases), which validates the correctness of the definition itself (this is the same call done to validate other cases like `also-notify`, etc.). (cherry picked from commit 1a732b6b8ecc89232724d80adba84350976ae2ca) --- lib/isccfg/check.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/isccfg/check.c b/lib/isccfg/check.c index 842b9abb16..a2c605bd77 100644 --- a/lib/isccfg/check.c +++ b/lib/isccfg/check.c @@ -86,6 +86,9 @@ keydirexist(const cfg_obj_t *zcgf, const char *optname, dns_name_t *zname, static const cfg_obj_t * find_maplist(const cfg_obj_t *config, const char *listname, const char *name); +static isc_result_t +validate_remotes(const cfg_obj_t *obj, const cfg_obj_t *config, + uint32_t *countp, isc_log_t *logctx, isc_mem_t *mctx); static void freekey(char *key, unsigned int type, isc_symvalue_t value, void *userarg) { UNUSED(type); @@ -2209,6 +2212,12 @@ check_remoteserverlist(const cfg_obj_t *cctx, const char *list, break; } + uint32_t dummy = 0; + result = validate_remotes(obj, cctx, &dummy, logctx, mctx); + if (result != ISC_R_SUCCESS) { + break; + } + elt = cfg_list_next(elt); } return result;