From: Date: Fri, 9 Jul 2010 12:56:18 +0000 (+0000) Subject: Sadly we can't dereference a pointer cast and use it as an lvalue without getting... X-Git-Tag: 11.0.0-beta1~2714 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=21dc81bb31bb2682721f932c492f3726096c354d;p=thirdparty%2Fasterisk.git Sadly we can't dereference a pointer cast and use it as an lvalue without getting this warning (at least with gcc 4.4.4): netsock2.c:492: warning: dereferencing pointer ‘({anonymous})’ does break strict-aliasing rules So we're back to using memcpy()... git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@274909 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/netsock2.c b/main/netsock2.c index 4d93a911bd..ba671c1dcd 100644 --- a/main/netsock2.c +++ b/main/netsock2.c @@ -489,7 +489,7 @@ int ast_sockaddr_to_sin(const struct ast_sockaddr *addr, void ast_sockaddr_from_sin(struct ast_sockaddr *addr, const struct sockaddr_in *sin) { - *((struct sockaddr_in *)&addr->ss) = *sin; + memcpy(&addr->ss, sin, sizeof(*sin)); if (addr->ss.ss_family != AF_INET) { ast_log(LOG_DEBUG, "Address family is not AF_INET\n");