summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2017-10-25 11:19:19 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2017-10-25 11:47:04 +0200
commit9f939335a07085aa9a9663efd1dca06ef6405d62 (patch)
treed05949d7ede3f59151b69c4763ff993a7b74cbe8 /src
parentb141888b3059694f5e2fbfe597c1703c8caa0bd2 (diff)
downloadsystemd-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.c6
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)