From f266bb2f61ba35126df581b79374d6f5c2724417 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Thu, 13 Aug 2020 12:08:50 +1000 Subject: [PATCH] NXT: fix fromwire bitmap checks (cherry picked from commit 73dd8496558beea6f6097788e4c7c8ccb45d8c1a) --- lib/dns/rdata/generic/nxt_30.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/dns/rdata/generic/nxt_30.c b/lib/dns/rdata/generic/nxt_30.c index 2afc235045..62ad959722 100644 --- a/lib/dns/rdata/generic/nxt_30.c +++ b/lib/dns/rdata/generic/nxt_30.c @@ -134,9 +134,11 @@ fromwire_nxt(ARGS_FROMWIRE) { RETERR(dns_name_fromwire(&name, source, dctx, options, target)); isc_buffer_activeregion(source, &sr); - if (sr.length > 0 && (sr.base[0] & 0x80) == 0 && - ((sr.length > 16) || sr.base[sr.length - 1] == 0)) + if (sr.length > 0 && ((sr.base[0] & 0x80) != 0 || sr.length > 16 || + sr.base[sr.length - 1] == 0)) + { return (DNS_R_BADBITMAP); + } RETERR(mem_tobuffer(target, sr.base, sr.length)); isc_buffer_forward(source, sr.length); return (ISC_R_SUCCESS);