From df7d23314c696e6391b9c91be21a6fb47cafd806 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Va=C5=A1ek?= <david.vasek@nic.cz>
Date: Mon, 20 Jun 2022 17:13:42 +0200
Subject: [PATCH] conf: add check for not supported catalog template options

---
 src/knot/conf/tools.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/knot/conf/tools.c b/src/knot/conf/tools.c
index 4e60c29579..2171a523c6 100644
--- a/src/knot/conf/tools.c
+++ b/src/knot/conf/tools.c
@@ -794,6 +794,17 @@ int check_template(
 	} \
 }
 
+#define CHECK_CATZ_TPL(option, option_string) \
+{ \
+	val = conf_rawid_get_txn(args->extra->conf, args->extra->txn, \
+		                 C_TPL, option, catalog_tpl.data, \
+		                 catalog_tpl.len); \
+	if (val.code == KNOT_EOK) { \
+		args->err_str = option_string " in a catalog template"; \
+		return KNOT_EINVAL; \
+	} \
+}
+
 int check_zone(
 	knotd_conf_check_args_t *args)
 {
@@ -864,6 +875,11 @@ int check_zone(
 			default:
 				break;
 			}
+
+			CHECK_CATZ_TPL(C_CATALOG_TPL, "'catalog-template'");
+			CHECK_CATZ_TPL(C_CATALOG_ZONE, "'catalog-zone'");
+			CHECK_CATZ_TPL(C_CATALOG_GROUP, "'catalog-group'");
+
 			conf_val_next(&catalog_tpl);
 		}
 	}
-- 
GitLab