changeset 811:c16ef62116ec

Fix getaddrinfo()
author gthomas
date Fri, 07 Mar 2003 02:14:52 +0000
parents efcbb31fcc57
children 515a36c8eb9d
files packages/net/common/current/ChangeLog packages/net/common/current/src/getaddrinfo.c
diffstat 2 files changed, 8 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/packages/net/common/current/ChangeLog
+++ b/packages/net/common/current/ChangeLog
@@ -1,3 +1,8 @@
+2003-03-06  Gary Thomas  <gary@mlbassoc.com>
+
+	* src/getaddrinfo.c: Need to clear any addresses - malloc() can
+	return garbage which the stack desn't like.
+
 2003-03-05  Gary Thomas  <gary@mlbassoc.com>
 
 	* src/getaddrinfo.c: Allow getaddrinfo() to use DNS gethostbyXXX()
--- a/packages/net/common/current/src/getaddrinfo.c
+++ b/packages/net/common/current/src/getaddrinfo.c
@@ -8,6 +8,7 @@
 //####ECOSPDCOPYRIGHTBEGIN####
 //
 // Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
+// Copyright (C) 2003 Gary Thomas
 // All Rights Reserved.
 //
 // Permission is granted to use, copy, modify and redistribute this
@@ -54,6 +55,7 @@ static int
     {
         struct sockaddr_in *sa;
         sa = (struct sockaddr_in *)malloc(sizeof(struct sockaddr_in));
+        memset(sa, 0, sizeof(*sa));
         ai->ai_addr = (struct sockaddr *)sa;
         ai->ai_addrlen = sizeof(*sa);
         if (ai->ai_addr == (struct sockaddr *)NULL) {
@@ -86,6 +88,7 @@ static int
     {
         struct sockaddr_in6 *sa;
         sa = (struct sockaddr_in6 *)malloc(sizeof(struct sockaddr_in6));
+        memset(sa, 0, sizeof(*sa));
         ai->ai_addr = (struct sockaddr *)sa;
         ai->ai_addrlen = sizeof(*sa);
         if (ai->ai_addr == (struct sockaddr *)NULL) {