]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix to guard access to shared ports interface array during
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Fri, 24 Jul 2026 12:38:46 +0000 (14:38 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Fri, 24 Jul 2026 12:38:46 +0000 (14:38 +0200)
  set up, for analyzer.

doc/Changelog
services/outside_network.c

index 3ed96dcf7b1514cf315f45c35415fc777a730176..6285c9ea8430bd10cd26c176c931bf3a800013c1 100644 (file)
@@ -21,6 +21,8 @@
          xfer_set_masters() error path.
        - Fix unused variable warnings in shared_ports_fetch_random
          and shared_ports_return_port when compiled without threads.
+       - Fix to guard access to shared ports interface array during
+         set up, for analyzer.
 
 23 July 2026: Wouter
        - Updated credits for Xuanchao Xie in 22 july changelog.
index 24d8f255faa791d855f0385cc34e3cbf6add4b9e..4210506fed46a3d23bff23378903ecec7de649a6 100644 (file)
@@ -4127,13 +4127,15 @@ static int shared_ports_alloc_ifs(struct shared_ports* shp, char** ifs,
                size_t done_4 = 0, done_6 = 0;
                int i;
                for(i=0; i<num_ifs; i++) {
-                       if(str_is_ip6(ifs[i]) && do_ip6) {
+                       if(str_is_ip6(ifs[i]) && do_ip6 &&
+                               done_6 < shp->num_ip6) {
                                if(!shared_ports_setup_if(&shp->ip6_ifs[done_6],
                                        ifs[i], availports, numavailports))
                                        return 0;
                                done_6++;
                        }
-                       if(!str_is_ip6(ifs[i]) && do_ip4) {
+                       if(!str_is_ip6(ifs[i]) && do_ip4 &&
+                               done_4 < shp->num_ip4) {
                                if(!shared_ports_setup_if(&shp->ip4_ifs[done_4],
                                        ifs[i], availports, numavailports))
                                        return 0;