From: Andrew Bartlett Date: Thu, 2 Jun 2016 21:23:12 +0000 (+1200) Subject: build: Try to work around strict aliasing rules on Ubuntu 10.04 X-Git-Tag: tdb-1.3.10~915 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2a5183f49efc1d407ed36c457d8a953e1363eb42;p=thirdparty%2Fsamba.git build: Try to work around strict aliasing rules on Ubuntu 10.04 We get cc1: warnings being treated as errors ../lib/util/util_net.c: In function get_socket_port: ../lib/util/util_net.c:921: error: dereferencing pointer sa.106 does break strict-aliasing rules ../lib/util/util_net.c:921: note: initialized from here ../lib/util/util_net.c:925: error: dereferencing pointer sa.107 does break strict-aliasing rules ../lib/util/util_net.c:925: note: initialized from here Signed-off-by: Andrew Bartlett Reviewed-by: Michael Adam --- diff --git a/lib/util/util_net.c b/lib/util/util_net.c index e5b33aa0a7e..cb238adcf5d 100644 --- a/lib/util/util_net.c +++ b/lib/util/util_net.c @@ -918,11 +918,13 @@ int get_socket_port(int fd) #if defined(HAVE_IPV6) if (sa.ss_family == AF_INET6) { - return ntohs(((struct sockaddr_in6 *)&sa)->sin6_port); + struct sockaddr_in6 *sa_in6 = (struct sockaddr_in6 *)&sa; + return ntohs(sa_in6->sin6_port); } #endif if (sa.ss_family == AF_INET) { - return ntohs(((struct sockaddr_in *)&sa)->sin_port); + struct sockaddr_in *sa_in = (struct sockaddr_in *)&sa; + return ntohs(sa_in->sin_port); } return -1; }