[dovecot-cvs] dovecot/src/lib network.c,1.28,1.29

cras at dovecot.org cras at dovecot.org
Sun May 29 03:26:21 EEST 2005


Update of /var/lib/cvs/dovecot/src/lib
In directory talvi:/tmp/cvs-serv23208

Modified Files:
	network.c 
Log Message:
Don't return random data if net_getpeername() or net_getsockname() is used
for non-inet/inet6 socket.



Index: network.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/network.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- network.c	13 May 2005 13:35:19 -0000	1.28
+++ network.c	29 May 2005 00:26:19 -0000	1.29
@@ -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)



More information about the dovecot-cvs mailing list