From 5ec4aa2aa9b10db707d5e173e48990fbb95beabf Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Fri, 5 Sep 2025 20:41:21 +0200 Subject: [PATCH] conf: fix check for allowed empty reference Fixes 4784c4c60199afa85daec96c70fa04daf0705efe --- src/knot/conf/conf.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/knot/conf/conf.c b/src/knot/conf/conf.c index 720c704c9a..dad7897cd1 100644 --- a/src/knot/conf/conf.c +++ b/src/knot/conf/conf.c @@ -180,8 +180,10 @@ conf_val_t conf_zone_get_txn( conf_db_get(conf, txn, C_ZONE, key1_name, dname, dname_size, &val); switch (val.code) { case KNOT_EOK: - if (val.blob_len == 1 && (val.item->flags & CONF_REF_EMPTY)) { - static const conf_val_t empty = { .code = KNOT_ENOENT }; + // 3 ~ 2-byte length prefix + '\0'. + if (val.blob_len == 3 && (val.item->flags & (YP_FMULTI | CONF_REF_EMPTY))) { + assert(memcmp(val.blob, "\x00\x01\x00", val.blob_len) == 0); + conf_val_t empty = { .item = val.item, .code = KNOT_ENOENT }; return empty; } return val; -- 2.47.3