]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
Fix buffer overrun in doq_repinfo_retrieve_localaddr() (#1441)
authorFothsid <18036123+Fothsid@users.noreply.github.com>
Thu, 23 Apr 2026 07:35:23 +0000 (09:35 +0200)
committerGitHub <noreply@github.com>
Thu, 23 Apr 2026 07:35:23 +0000 (09:35 +0200)
services/listen_dnsport.c

index 97a7c84b2c30171a64c14078f04d340e8a5c87c0..28c1ed975b1741e44ea92b26f6659d1c6777b197 100644 (file)
@@ -3767,7 +3767,7 @@ doq_repinfo_retrieve_localaddr(struct comm_reply* repinfo,
                memset(sa6, 0, *localaddrlen);
                sa6->sin6_family = AF_INET6;
                memmove(&sa6->sin6_addr, &repinfo->pktinfo.v6info.ipi6_addr,
-                       *localaddrlen);
+                       sizeof(struct in_addr6));
                sa6->sin6_port = repinfo->doq_srcport;
 #endif
        } else {
@@ -3777,7 +3777,7 @@ doq_repinfo_retrieve_localaddr(struct comm_reply* repinfo,
                memset(sa, 0, *localaddrlen);
                sa->sin_family = AF_INET;
                memmove(&sa->sin_addr, &repinfo->pktinfo.v4info.ipi_addr,
-                       *localaddrlen);
+                       sizeof(struct in_addr));
                sa->sin_port = repinfo->doq_srcport;
 #elif defined(IP_RECVDSTADDR)
                struct sockaddr_in* sa = (struct sockaddr_in*)localaddr;