-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]
2000. [bug] memmove()/strtol() fix was incomplete. [RT #15812]
/* 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.5.2.7.4.6 2005/10/11 00:48:14 marka Exp $";
+static const char rcsid[] = "$Id: dns_ho.c,v 1.5.2.7.4.7 2006/03/08 03:43:44 marka Exp $";
#endif /* LIBC_SCCS and not lint */
/* Imports. */
errno = ENOMEM;
goto cleanup;
}
- memset(q, 0, sizeof(q));
+ memset(q, 0, sizeof(*q));
switch (af) {
case AF_INET:
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) ||
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: