You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by cc...@apache.org on 2016/11/01 17:16:53 UTC

[10/11] incubator-mynewt-core git commit: mn_socket - Fix strict aliasing warning.

mn_socket - Fix strict aliasing warning.

aka effective type rule violation.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/dd5082d7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/dd5082d7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/dd5082d7

Branch: refs/heads/develop
Commit: dd5082d78b83764b589f269974733e70457f19e6
Parents: 7cf94f6
Author: Christopher Collins <cc...@apache.org>
Authored: Sun Oct 30 14:49:44 2016 -0700
Committer: Christopher Collins <cc...@apache.org>
Committed: Tue Nov 1 10:08:48 2016 -0700

----------------------------------------------------------------------
 net/ip/mn_socket/src/mn_socket_aconv.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/dd5082d7/net/ip/mn_socket/src/mn_socket_aconv.c
----------------------------------------------------------------------
diff --git a/net/ip/mn_socket/src/mn_socket_aconv.c b/net/ip/mn_socket/src/mn_socket_aconv.c
index b64b9b8..dc005c6 100644
--- a/net/ip/mn_socket/src/mn_socket_aconv.c
+++ b/net/ip/mn_socket/src/mn_socket_aconv.c
@@ -65,6 +65,7 @@ mn_inet_ntop(int af, const void *src_v, void *dst, int len)
 {
     const unsigned char *src = src_v;
     const struct mn_in6_addr *a6;
+    uint16_t u16;
     int rc;
     int i;
 
@@ -81,8 +82,9 @@ mn_inet_ntop(int af, const void *src_v, void *dst, int len)
         rc = 0;
 
         for (i = 0; i < sizeof(*a6); i += 2) {
-            rc += snprintf(dst + rc, len - rc, "%x",
-              htons(*(uint16_t *)&a6->s_addr[i]));
+            memcpy(&u16, &a6->s_addr[i], 2);
+            u16 = htons(u16);
+            rc += snprintf(dst + rc, len - rc, "%x", 16);
             if (rc >= len) {
                 return NULL;
             }