From: Zbigniew Jędrzejewski-Szmek Date: Wed, 25 Oct 2017 09:19:19 +0000 (+0200) Subject: resolved: fix loop on packets with pseudo dns types X-Git-Tag: v236~290^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9f939335a07085aa9a9663efd1dca06ef6405d62;p=thirdparty%2Fsystemd.git resolved: fix loop on packets with pseudo dns types Reported by Karim Hossen & Thomas Imbert from Sogeti ESEC R&D. https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1725351 --- diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c index e2f227bfc64..35f4d0689b2 100644 --- a/src/resolve/resolved-dns-packet.c +++ b/src/resolve/resolved-dns-packet.c @@ -1514,7 +1514,7 @@ static int dns_packet_read_type_window(DnsPacket *p, Bitmap **types, size_t *sta found = true; - while (bitmask) { + for (; bitmask; bit++, bitmask >>= 1) if (bitmap[i] & bitmask) { uint16_t n; @@ -1528,10 +1528,6 @@ static int dns_packet_read_type_window(DnsPacket *p, Bitmap **types, size_t *sta if (r < 0) return r; } - - bit++; - bitmask >>= 1; - } } if (!found)