]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- xfr-tsig, other data content matches the other len when written.
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Fri, 20 Jun 2025 14:57:24 +0000 (16:57 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Fri, 20 Jun 2025 14:57:24 +0000 (16:57 +0200)
util/tsig.c

index 632356e338371d2ab6b0ae3fa3eef9dcf7ba220b..6cdc9353493ea659e5bc9bb391936acb0dfd4481 100644 (file)
@@ -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);