From: W.C.A. Wijngaards Date: Fri, 20 Jun 2025 14:57:24 +0000 (+0200) Subject: - xfr-tsig, other data content matches the other len when written. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0afbb68b403a78b9680d30298d45bb167dd00efc;p=thirdparty%2Funbound.git - xfr-tsig, other data content matches the other len when written. --- diff --git a/util/tsig.c b/util/tsig.c index 632356e33..6cdc93534 100644 --- a/util/tsig.c +++ b/util/tsig.c @@ -792,9 +792,12 @@ tsig_sign_query(struct tsig_data* tsig, struct sldns_buffer* pkt, sldns_buffer_write_u48(pkt, tsig->time_signed); sldns_buffer_write_u16(pkt, tsig->fudge); sldns_buffer_write_u16(pkt, tsig->error); - sldns_buffer_write_u16(pkt, tsig->other_len); - if(tsig->other_len != 0) + if(tsig->other_len == 6) { + sldns_buffer_write_u16(pkt, tsig->other_len); sldns_buffer_write_u48(pkt, tsig->other_time); + } else { + sldns_buffer_write_u16(pkt, 0); + } /* Sign it */ if(!tsig_algo_calc(key, pkt, tsig)) { @@ -827,9 +830,12 @@ tsig_sign_query(struct tsig_data* tsig, struct sldns_buffer* pkt, sldns_buffer_write(pkt, tsig->mac, tsig->mac_size); sldns_buffer_write_u16(pkt, tsig->original_query_id); sldns_buffer_write_u16(pkt, tsig->error); - sldns_buffer_write_u16(pkt, tsig->other_len); - if(tsig->other_len == 6) + if(tsig->other_len == 6) { + sldns_buffer_write_u16(pkt, tsig->other_len); sldns_buffer_write_u48(pkt, tsig->other_time); + } else { + sldns_buffer_write_u16(pkt, 0); + } LDNS_ARCOUNT_SET(sldns_buffer_begin(pkt), LDNS_ARCOUNT(sldns_buffer_begin(pkt))+1);