diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2017-10-25 11:19:19 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2017-10-25 11:47:04 +0200 |
commit | 9f939335a07085aa9a9663efd1dca06ef6405d62 (patch) | |
tree | d05949d7ede3f59151b69c4763ff993a7b74cbe8 /src | |
parent | b141888b3059694f5e2fbfe597c1703c8caa0bd2 (diff) | |
download | systemd-9f939335a07085aa9a9663efd1dca06ef6405d62.tar.gz |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/resolve/resolved-dns-packet.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c index e2f227bfc6..35f4d0689b 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) |