]> 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:43:18 +0000 (03:43 +0000)
committerMark Andrews <marka@isc.org>
Wed, 8 Mar 2006 03:43:18 +0000 (03:43 +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 fe72035bbc406e7cce9b646ede1c9e91a04b313f..736d7455198488ce206be6a83e4ac982cac28592 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 676973d848edc3d517e2223bde20473a905868e2..3e93852b8ecdaa458c7bd561ac68e9847bd917cc 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.14.18.4 2005/10/11 00:25:09 marka Exp $";
+static const char rcsid[] = "$Id: dns_ho.c,v 1.14.18.5 2006/03/08 03:43:18 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: