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