parser: fix warnings
authorFerry Huberts <f.huberts@mindef.nl>
Mon, 10 Oct 2011 12:01:21 +0000 (14:01 +0200)
committerFerry Huberts <f.huberts@mindef.nl>
Mon, 10 Oct 2011 13:11:12 +0000 (15:11 +0200)
src/parser.c: In function 'olsr_input':
src/parser.c:467: warning: dereferencing pointer 'from.100' does break strict-aliasing rules
src/parser.c:467: note: initialized from here
src/parser.c:470: warning: dereferencing pointer 'from.101' does break strict-aliasing rules
src/parser.c:470: note: initialized from here

Signed-off-by: Ferry Huberts <f.huberts@mindef.nl>
src/parser.c

index 6c83b3d..b5f3221 100644 (file)
@@ -464,10 +464,12 @@ olsr_input(int fd, void *data __attribute__ ((unused)), unsigned int flags __att
     }
     if (olsr_cnf->ip_version == AF_INET) {
       /* IPv4 sender address */
-      memcpy(&from_addr.v4, &((struct sockaddr_in *)&from)->sin_addr, sizeof(from_addr.v4));
+      void * src = &((struct sockaddr_in *)&from)->sin_addr;
+      memcpy(&from_addr.v4, src, sizeof(from_addr.v4));
     } else {
       /* IPv6 sender address */
-      memcpy(&from_addr.v6, &((struct sockaddr_in6 *)&from)->sin6_addr, sizeof(from_addr.v6));
+      void * src = &((struct sockaddr_in6 *)&from)->sin6_addr;
+      memcpy(&from_addr.v6, src, sizeof(from_addr.v6));
     }
 
 #ifdef DEBUG