From: Danny Mayer Date: Thu, 24 Aug 2006 13:10:50 +0000 (-0400) Subject: Bug #690:Proper fix for length issue X-Git-Tag: NTP_4_2_3P35~6^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=091da9d57d16666c1fdc6f75f5789820c4c67347;p=thirdparty%2Fntp.git Bug #690:Proper fix for length issue bk: 44eda55a3OX4Ohe_oy7_DGWSR2IsWA --- diff --git a/libntp/ntp_rfc2553.c b/libntp/ntp_rfc2553.c index 63562d608..2a07be98e 100644 --- a/libntp/ntp_rfc2553.c +++ b/libntp/ntp_rfc2553.c @@ -115,6 +115,7 @@ DNSlookup_name( /* * Encapsulate gethostbyname to control the error code */ +#define DNSlookup_name LC_DNSlookup_name int DNSlookup_name( const char *name, @@ -413,7 +414,7 @@ do_nodename( ai->ai_family = hp->h_addrtype; ai->ai_addrlen = sizeof(struct sockaddr); sockin = (struct sockaddr_in *)ai->ai_addr; - memcpy(&sockin->sin_addr, hp->h_addr, sizeof(struct in_addr)); + memcpy(&sockin->sin_addr, hp->h_addr, hp->h_length); ai->ai_addr->sa_family = hp->h_addrtype; #ifdef HAVE_SA_LEN_IN_STRUCT_SOCKADDR ai->ai_addr->sa_len = sizeof(struct sockaddr); diff --git a/ports/winnt/libntp/dnslookup.c b/ports/winnt/libntp/dnslookup.c index b304b775e..20fb52cdb 100644 --- a/ports/winnt/libntp/dnslookup.c +++ b/ports/winnt/libntp/dnslookup.c @@ -163,7 +163,7 @@ DNSlookup_name( addr = (struct hostent *) malloc(sizeof(struct hostent)); memset(addr, 0, sizeof(struct hostent)); addr->h_addrtype = (short) results->lpcsaBuffer->iSocketType; - addr->h_length = (short) results->lpcsaBuffer->RemoteAddr.iSockaddrLength; + addr->h_length = sizeof(struct in_addr); /* Only passing back the address */ } for (i = 0; i < results->dwNumberOfCsAddrs; i++) {