From: Vladimír Čunát Date: Wed, 15 Nov 2017 10:21:47 +0000 (+0100) Subject: fix a bug for non-root zones X-Git-Tag: v2.0.0~6^2~62 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f7de1275054e1cd181674e09db3a1cbbe656ba28;p=thirdparty%2Fknot-resolver.git fix a bug for non-root zones Owner name reconstruction didn't work. --- diff --git a/lib/cache.c b/lib/cache.c index d9cb207a9..de4470729 100644 --- a/lib/cache.c +++ b/lib/cache.c @@ -477,7 +477,10 @@ static int dname_wire_reconstruct(knot_dname_t *buf, const struct key *k, assert(false); return ret; } - ret = knot_dname_to_wire(buf + ret, k->zname, KNOT_DNAME_MAXLEN - kwz.len); + /* The last written byte is the zero label for root -> overwrite. */ + knot_dname_t *zone_start = buf + ret - 1; + assert(*zone_start == '\0'); + ret = knot_dname_to_wire(zone_start, k->zname, KNOT_DNAME_MAXLEN - kwz.len); if (ret != k->zlf_len + 1) { assert(false); return ret < 0 ? ret : kr_error(EILSEQ);