]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
Fix wrong count of additional section in some format error cases.
authorWouter Wijngaards <wouter@NLnetLabs.nl>
Wed, 16 Jun 2010 15:02:36 +0000 (15:02 +0000)
committerWouter Wijngaards <wouter@NLnetLabs.nl>
Wed, 16 Jun 2010 15:02:36 +0000 (15:02 +0000)
wire2host.c

index c694aa0b9da31479fc66280128b708ed5f0d1b7e..99d289fb9d50ad89cf9feb10cca8167ee60e065d 100644 (file)
@@ -433,7 +433,7 @@ ldns_wire2pkt(ldns_pkt **packet_p, const uint8_t *wire, size_t max)
                                ldns_pkt_set_edns_data(packet, ldns_rdf_clone(ldns_rr_rdf(rr, 0)));
                        }
                        ldns_rr_free(rr);
-                       have_edns = 1;
+                       have_edns += 1;
                } else if (ldns_rr_get_type(rr) == LDNS_RR_TYPE_TSIG) {
                        ldns_pkt_set_tsig(packet, rr);
                        ldns_pkt_set_arcount(packet, ldns_pkt_arcount(packet) - 1);
@@ -444,7 +444,8 @@ ldns_wire2pkt(ldns_pkt **packet_p, const uint8_t *wire, size_t max)
        }
        ldns_pkt_set_size(packet, max);
        if(have_edns)
-               ldns_pkt_set_arcount(packet, ldns_pkt_arcount(packet) - 1);
+               ldns_pkt_set_arcount(packet, ldns_pkt_arcount(packet)
+                        - have_edns);
 
        *packet_p = packet;
        return status;