From: Guy Harris Date: Sat, 18 Jan 2014 01:24:23 +0000 (-0800) Subject: More possibly-unaligned memcpy()s and assignments - use unaligned_memcpy(). X-Git-Tag: tcpdump-4.6.0~259 X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/c947c9dd69434c708f629700a46dcbd9ca5b3987 More possibly-unaligned memcpy()s and assignments - use unaligned_memcpy(). --- diff --git a/print-ip.c b/print-ip.c index 128834c4..2a3f1e67 100644 --- a/print-ip.c +++ b/print-ip.c @@ -117,12 +117,12 @@ ip_finddst(const struct ip *ip) case IPOPT_LSRR: if (len < 7) break; - memcpy(&retval, cp + len - 4, 4); + unaligned_memcpy(&retval, cp + len - 4, 4); return retval; } } trunc: - memcpy(&retval, &ip->ip_dst.s_addr, sizeof(u_int32_t)); + unaligned_memcpy(&retval, &ip->ip_dst.s_addr, sizeof(u_int32_t)); return retval; } @@ -146,9 +146,9 @@ nextproto4_cksum(const struct ip *ip, const u_int8_t *data, ph.len = htons((u_int16_t)len); ph.mbz = 0; ph.proto = next_proto; - memcpy(&ph.src, &ip->ip_src.s_addr, sizeof(u_int32_t)); + unaligned_memcpy(&ph.src, &ip->ip_src.s_addr, sizeof(u_int32_t)); if (IP_HL(ip) == 5) - memcpy(&ph.dst, &ip->ip_dst.s_addr, sizeof(u_int32_t)); + unaligned_memcpy(&ph.dst, &ip->ip_dst.s_addr, sizeof(u_int32_t)); else ph.dst = ip_finddst(ip); diff --git a/print-ip6.c b/print-ip6.c index 3113cc6c..35c92101 100644 --- a/print-ip6.c +++ b/print-ip6.c @@ -57,8 +57,8 @@ nextproto6_cksum(const struct ip6_hdr *ip6, const u_int8_t *data, /* pseudo-header */ memset(&ph, 0, sizeof(ph)); - ph.ph_src = ip6->ip6_src; - ph.ph_dst = ip6->ip6_dst; + unaligned_memcpy(&ph.ph_src, &ip6->ip6_src, sizeof (struct in6_addr)); + unaligned_memcpy(&ph.ph_dst, &ip6->ip6_dst, sizeof (struct in6_addr)); ph.ph_len = htonl(len); ph.ph_nxt = next_proto;