diff --git a/headers/posix/netdb.h b/headers/posix/netdb.h index 2610400e13..75bb1060fe 100644 --- a/headers/posix/netdb.h +++ b/headers/posix/netdb.h @@ -195,7 +195,7 @@ void endnetent(void); void endprotoent(void); void endservent(void); void freehostent(struct hostent *host); -struct hostent *gethostbyaddr(const char *address, socklen_t length, int type); +struct hostent *gethostbyaddr(const void *address, socklen_t length, int type); struct hostent *gethostbyname(const char *name); struct hostent *gethostbyname2(const char *name, int type); struct hostent *gethostent(void); diff --git a/src/system/libnetwork/netresolv/irs/gethnamaddr.c b/src/system/libnetwork/netresolv/irs/gethnamaddr.c index e06d22c5f1..0361502a48 100644 --- a/src/system/libnetwork/netresolv/irs/gethnamaddr.c +++ b/src/system/libnetwork/netresolv/irs/gethnamaddr.c @@ -669,7 +669,7 @@ gethostbyname_internal(const char *name, int af, res_state res) } struct hostent * -gethostbyaddr(const char *addr, /* XXX should have been def'd as u_char! */ +gethostbyaddr(const void *addr, socklen_t len, int af) { const u_char *uaddr = (const u_char *)addr; @@ -694,7 +694,6 @@ gethostbyaddr(const char *addr, /* XXX should have been def'd as u_char! */ (IN6_IS_ADDR_V4MAPPED((const struct in6_addr *)(const void *)uaddr) || IN6_IS_ADDR_V4COMPAT((const struct in6_addr *)(const void *)uaddr))) { /* Unmap. */ - addr += IN6ADDRSZ - INADDRSZ; uaddr += IN6ADDRSZ - INADDRSZ; af = AF_INET; len = INADDRSZ;