From 03dd06de9ae7b3692fd2ab141c0522abacbaec31 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 9 Jun 2009 13:33:09 +1000 Subject: [PATCH] fixed socket wrapper to determine family from the right structure In convert_in_un_remote() the socket family can be accessed either as si->family or inaddr->sa_family. We were using the si->family to determine how to cast the inaddr structure, but if si->family != inaddr->sa_family then we will incorrectly be casting a in6 structure as in4 or vice-versa. --- lib/socket_wrapper/socket_wrapper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/socket_wrapper/socket_wrapper.c b/lib/socket_wrapper/socket_wrapper.c index 071060c8643..8563400dbd4 100644 --- a/lib/socket_wrapper/socket_wrapper.c +++ b/lib/socket_wrapper/socket_wrapper.c @@ -348,7 +348,7 @@ static int convert_in_un_remote(struct socket_info *si, const struct sockaddr *i if (bcast) *bcast = 0; - switch (si->family) { + switch (inaddr->sa_family) { case AF_INET: { const struct sockaddr_in *in = (const struct sockaddr_in *)inaddr; -- 2.11.4.GIT