# HG changeset patch # User Timo Sirainen # Date 1117326379 -10800 # Node ID ddfa507bb74f52b1a75a9ecb656c4e5ae23e37d4 # Parent c8777e7773f8a7da566582457ca3886eca92c3e6 Don't return random data if net_getpeername() or net_getsockname() is used for non-inet/inet6 socket. diff -r c8777e7773f8 -r ddfa507bb74f src/lib/network.c --- a/src/lib/network.c Sat May 28 18:14:12 2005 +0300 +++ b/src/lib/network.c Sun May 29 03:26:19 2005 +0300 @@ -72,7 +72,10 @@ memcpy(&ip->ip, &so->sin6.sin6_addr, sizeof(ip->ip)); else #endif + if (ip->family == AF_INET) memcpy(&ip->ip, &so->sin.sin_addr, 4); + else + memset(&ip->ip, 0, sizeof(ip->ip)); } static inline void sin_set_port(union sockaddr_union *so, unsigned int port) @@ -91,7 +94,10 @@ if (so->sin.sin_family == AF_INET6) return ntohs(so->sin6.sin6_port); #endif - return ntohs(so->sin.sin_port); + if (so->sin.sin_family == AF_INET) + return ntohs(so->sin.sin_port); + + return 0; } static inline void close_save_errno(int fd)