]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix for EDNS EDE size calculation.
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Tue, 1 Aug 2023 13:08:50 +0000 (15:08 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Tue, 1 Aug 2023 13:08:50 +0000 (15:08 +0200)
doc/Changelog
util/data/msgencode.c

index d274a5c1c1bece33777b50f21090fa53d132f2f4..b3ac846ce9a4839034200b6fcd327a4d1a171548 100644 (file)
@@ -4,6 +4,9 @@
        - For #911: Try to trim EXTRA-TEXT (and LDNS_EDE_OTHER options
          altogether) before giving up on attaching EDE options.
 
+1 August 2023: Wouter
+       - Fix for EDNS EDE size calculation.
+
 31 July 2023: George
        - Merge #790 from Tom Carpay: Add support for EDE caching in cachedb
          and subnetcache.
index 19a5a6ec0124806ece82117f57cc8e61dd1f6fe9..f42dd6b2d552bce549574de6037dd6e1da38407f 100644 (file)
@@ -833,22 +833,24 @@ calc_ede_option_size(struct edns_data* edns, uint16_t* txt_size)
        if(!edns || !edns->edns_present)
                return 0;
        for(opt = edns->opt_list_inplace_cb_out; opt; opt = opt->next) {
-               if(opt->opt_code == LDNS_EDNS_EDE)
+               if(opt->opt_code == LDNS_EDNS_EDE) {
                        rdatalen += 4 + opt->opt_len;
                        if(opt->opt_len > 2)
                                *txt_size += opt->opt_len - 2;
                        if(opt->opt_len >= 2 && sldns_read_uint16(
                                opt->opt_data) == LDNS_EDE_OTHER)
                                *txt_size += 4 + 2;
+               }
        }
        for(opt = edns->opt_list_out; opt; opt = opt->next) {
-               if(opt->opt_code == LDNS_EDNS_EDE)
+               if(opt->opt_code == LDNS_EDNS_EDE) {
                        rdatalen += 4 + opt->opt_len;
                        if(opt->opt_len > 2)
                                *txt_size += opt->opt_len - 2;
                        if(opt->opt_len >= 2 && sldns_read_uint16(
                                opt->opt_data) == LDNS_EDE_OTHER)
                                *txt_size += 4 + 2;
+               }
        }
        return rdatalen;
 }