This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
[PATCH 2/2] cygwin: fix gethostbyaddr argument types
- From: Yaakov Selkowitz <yselkowi at redhat dot com>
- To: cygwin-patches at cygwin dot com
- Date: Tue, 26 Sep 2017 20:36:35 -0500
- Subject: [PATCH 2/2] cygwin: fix gethostbyaddr argument types
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=yselkowi at redhat dot com
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com E7EA8C047B92
- References: <20170927013635.19160-1-yselkowi@redhat.com>
The first argument of gethostbyaddr needs to accept a generic pointer
to be compatible with e.g. struct in_addr *. This caused an issue
compiling krb5-1.15.
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
---
winsup/cygwin/include/netdb.h | 2 +-
winsup/cygwin/net.cc | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/winsup/cygwin/include/netdb.h b/winsup/cygwin/include/netdb.h
index e46e34169..91e91720d 100644
--- a/winsup/cygwin/include/netdb.h
+++ b/winsup/cygwin/include/netdb.h
@@ -228,7 +228,7 @@ void endnetent (void);
void endprotoent (void);
void endservent (void);
void endrpcent (void);
-struct hostent *gethostbyaddr (const char *, int, int);
+struct hostent *gethostbyaddr (const void *, socklen_t, int);
struct hostent *gethostbyname (const char *);
#if __MISC_VISIBLE
struct hostent *gethostbyname2 (const char *, int);
diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc
index fd903b112..8969e7c6f 100644
--- a/winsup/cygwin/net.cc
+++ b/winsup/cygwin/net.cc
@@ -1152,13 +1152,13 @@ cygwin_gethostbyname (const char *name)
/* exported as gethostbyaddr: standards? */
extern "C" struct hostent *
-cygwin_gethostbyaddr (const char *addr, int len, int type)
+cygwin_gethostbyaddr (const void *addr, socklen_t len, int type)
{
hostent *res = NULL;
__try
{
- res = dup_ent (gethostbyaddr (addr, len, type));
+ res = dup_ent (gethostbyaddr ((const char *) addr, len, type));
if (res)
debug_printf ("h_name %s", res->h_name);
else
--
2.14.1