From: Wouter Wijngaards Date: Wed, 16 Jun 2010 15:02:36 +0000 (+0000) Subject: Fix wrong count of additional section in some format error cases. X-Git-Tag: release-1.6.6~39 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=673d92dfd59b17d5ef89b5bbd66586e0cc175214;p=thirdparty%2Fldns.git Fix wrong count of additional section in some format error cases. --- diff --git a/wire2host.c b/wire2host.c index c694aa0b..99d289fb 100644 --- a/wire2host.c +++ b/wire2host.c @@ -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;