From 84f788d6699f289160d7cb3823c1bf9a3826f11f Mon Sep 17 00:00:00 2001 From: Evgeny Vereshchagin Date: Sat, 26 Nov 2022 12:02:46 +0000 Subject: [PATCH] resolve: format zero-length RDATA according to rfc3597 If the RDATA is of zero length, the text representation contains only the \# token and the single zero representing the length. --- src/resolve/resolved-dns-rr.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/resolve/resolved-dns-rr.c b/src/resolve/resolved-dns-rr.c index d47cdbbd8e2..f4fa219ab7c 100644 --- a/src/resolve/resolved-dns-rr.c +++ b/src/resolve/resolved-dns-rr.c @@ -1137,12 +1137,15 @@ const char *dns_resource_record_to_string(DnsResourceRecord *rr) { break; default: - t = hexmem(rr->generic.data, rr->generic.data_size); - if (!t) - return NULL; - /* Format as documented in RFC 3597, Section 5 */ - r = asprintf(&s, "%s \\# %zu %s", k, rr->generic.data_size, t); + if (rr->generic.data_size == 0) + r = asprintf(&s, "%s \\# 0", k); + else { + t = hexmem(rr->generic.data, rr->generic.data_size); + if (!t) + return NULL; + r = asprintf(&s, "%s \\# %zu %s", k, rr->generic.data_size, t); + } if (r < 0) return NULL; break; -- 2.47.3