From: Wouter Wijngaards Date: Fri, 20 Nov 2015 09:09:55 +0000 (+0000) Subject: - Fix that malformed EDNS query gets a response without malformed EDNS. X-Git-Tag: release-1.5.7rc1~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2262975cab19afa7b51b82a8c78826343be26867;p=thirdparty%2Funbound.git - Fix that malformed EDNS query gets a response without malformed EDNS. git-svn-id: file:///svn/unbound/trunk@3546 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/daemon/worker.c b/daemon/worker.c index 79aec4d3a..9fe014618 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -868,7 +868,8 @@ worker_handle_request(struct comm_point* c, void* arg, int error, if((ret=parse_edns_from_pkt(c->buffer, &edns)) != 0) { verbose(VERB_ALGO, "worker parse edns: formerror."); log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen); - sldns_buffer_rewind(c->buffer); + sldns_buffer_flip(c->buffer); /* remove edns from reply */ + sldns_buffer_write_at(c->buffer, 10, (uint8_t*)"\0\0", 2); LDNS_QR_SET(sldns_buffer_begin(c->buffer)); LDNS_RCODE_SET(sldns_buffer_begin(c->buffer), ret); server_stats_insrcode(&worker->stats, c->buffer); diff --git a/doc/Changelog b/doc/Changelog index dee657e87..e5cb67d22 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,6 @@ 20 November 2015: Wouter - Added assert on rrset cache correctness. + - Fix that malformed EDNS query gets a response without malformed EDNS. 18 November 2015: Wouter - newer acx_nlnetlabs.m4.