]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2003. [bug] libbind: The DNS name/address lookup functions could
authorMark Andrews <marka@isc.org>
Wed, 8 Mar 2006 03:12:24 +0000 (03:12 +0000)
committerMark Andrews <marka@isc.org>
Wed, 8 Mar 2006 03:12:24 +0000 (03:12 +0000)
                        occasionally follow a random pointer due to
                        structures not being completely zeroed. [RT #15806]

CHANGES
lib/bind/irs/dns_ho.c

diff --git a/CHANGES b/CHANGES
index 2a59d0613c0d36dedaebf20a8a58ee3f01545e70..acf2a42829975a8bc8c7ff835c95771412fead3e 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,8 @@
-2002   [bug]           libbind: tighten the constraints on when
+2003.  [bug]           libbind: The DNS name/address lookup functions could
+                       occasionally follow a random pointer due to
+                       structures not being completely zeroed. [RT #15806]
+
+2002.  [bug]           libbind: tighten the constraints on when
                        struct addrinfo._ai_pad exists.  [RT #15783]
 
 2001.  [func]          Check the KSK flag when updating a secure dynamic zone.
index 96769d47a58ff3e8a168ab89ba4c9aea4b02ca51..617b69704090811001e91b9cea8653493f054a50 100644 (file)
@@ -52,7 +52,7 @@
 /* BIND Id: gethnamaddr.c,v 8.15 1996/05/22 04:56:30 vixie Exp $ */
 
 #if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: dns_ho.c,v 1.18 2005/10/11 00:10:14 marka Exp $";
+static const char rcsid[] = "$Id: dns_ho.c,v 1.19 2006/03/08 03:12:24 marka Exp $";
 #endif /* LIBC_SCCS and not lint */
 
 /* Imports. */
@@ -258,7 +258,7 @@ ho_byname2(struct irs_ho *this, const char *name, int af)
                errno = ENOMEM;
                goto cleanup;
        }
-       memset(q, 0, sizeof(q));
+       memset(q, 0, sizeof(*q));
 
        switch (af) {
        case AF_INET:
@@ -349,8 +349,8 @@ ho_byaddr(struct irs_ho *this, const void *addr, int len, int af)
                errno = ENOMEM;
                goto cleanup;
        }
-       memset(q, 0, sizeof(q));
-       memset(q2, 0, sizeof(q2));
+       memset(q, 0, sizeof(*q));
+       memset(q2, 0, sizeof(*q2));
 
        if (af == AF_INET6 && len == IN6ADDRSZ &&
            (!memcmp(uaddr, mapped, sizeof mapped) ||
@@ -574,8 +574,8 @@ ho_addrinfo(struct irs_ho *this, const char *name, const struct addrinfo *pai)
                errno = ENOMEM;
                goto cleanup;
        }
-       memset(q, 0, sizeof(q2));
-       memset(q2, 0, sizeof(q2));
+       memset(q, 0, sizeof(*q2));
+       memset(q2, 0, sizeof(*q2));
 
        switch (pai->ai_family) {
        case AF_UNSPEC: