]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Avoid pointer gymnastics.
authorRoy Marples <roy@marples.name>
Thu, 14 Nov 2013 10:29:14 +0000 (10:29 +0000)
committerRoy Marples <roy@marples.name>
Thu, 14 Nov 2013 10:29:14 +0000 (10:29 +0000)
Thanks to Christos Zoulas.

if-bsd.c

index d7e466f8b21784fba3db42817566141543d8c0bc..c5c4c3305ac42c15a6113875492768c3f447f711 100644 (file)
--- a/if-bsd.c
+++ b/if-bsd.c
@@ -380,8 +380,9 @@ if_route6(const struct rt6 *rt, int action)
 #ifdef __KAME__
 #define SCOPE {                                                                      \
                if (IN6_IS_ADDR_LINKLOCAL(&su.sin.sin6_addr)) {               \
-                       *(uint16_t *)(void *)&su.sin.sin6_addr.s6_addr[2] =   \
-                           htons(su.sin.sin6_scope_id);                      \
+                       uint16_t scope = htons(su.sin.sin6_scope_id);         \
+                       memcpy(&su.sin.sin6_addr.s6_addr[2], &scope,          \
+                           sizeof(scope));                                   \
                        su.sin.sin6_scope_id = 0;                             \
                }                                                             \
        }