]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: when serializing NSEC3 windows, don't write more windows than necessary
authorLennart Poettering <lennart@poettering.net>
Mon, 14 Dec 2015 20:26:15 +0000 (21:26 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 14 Dec 2015 20:28:39 +0000 (21:28 +0100)
src/resolve/resolved-dns-packet.c

index 8fc3094b679f5234051626bada126dfe411534c1..c34ecc44f8ec41b3bf02d61c5112174d99265264 100644 (file)
@@ -659,15 +659,16 @@ static int dns_packet_append_types(DnsPacket *p, Bitmap *types, size_t *start) {
                 }
 
                 window = n >> 8;
-
                 entry = n & 255;
 
                 bitmaps[entry / 8] |= 1 << (7 - (entry % 8));
         }
 
-        r = dns_packet_append_type_window(p, window, entry / 8 + 1, bitmaps, NULL);
-        if (r < 0)
-                goto fail;
+        if (bitmaps[entry / 8] != 0) {
+                r = dns_packet_append_type_window(p, window, entry / 8 + 1, bitmaps, NULL);
+                if (r < 0)
+                        goto fail;
+        }
 
         if (start)
                 *start = saved_size;