commit: r1675 - neon/trunk/src

joe at manyfish.co.uk joe at manyfish.co.uk
Wed Aug 5 09:01:29 EDT 2009


Author: joe
Date: Wed Aug  5 06:01:26 2009
New Revision: 1675

Modified:
   neon/trunk/src/ne_socket.c

Log:
* src/ne_socket.c (ne_sock_peer): Fix strict-aliasing issue.


Modified: neon/trunk/src/ne_socket.c
==============================================================================
--- neon/trunk/src/ne_socket.c	(original)
+++ neon/trunk/src/ne_socket.c	Wed Aug  5 06:01:26 2009
@@ -1394,6 +1394,7 @@
 ne_inet_addr *ne_sock_peer(ne_socket *sock, unsigned int *port)
 {
     union saun {
+        struct sockaddr sa;
         struct sockaddr_in sin;
 #if defined(USE_GETADDRINFO) && defined(AF_INET6)
         struct sockaddr_in6 sin6;
@@ -1420,13 +1421,13 @@
     ia->ai_addr = ne_malloc(sizeof *ia);
     ia->ai_addrlen = len;
     memcpy(ia->ai_addr, sad, len);
-    ia->ai_family = sad->sa_family;
+    ia->ai_family = saun.sa.sa_family;
 #else
     memcpy(ia, &saun.sin.sin_addr.s_addr, sizeof *ia);
 #endif    
 
 #if defined(USE_GETADDRINFO) && defined(AF_INET6)
-    *port = ntohs(sad->sa_family == AF_INET ? 
+    *port = ntohs(saun.sa.sa_family == AF_INET ? 
                   saun.sin.sin_port : saun.sin6.sin6_port);
 #else
     *port = ntohs(saun.sin.sin_port);



More information about the neon-commits mailing list