Module Name: src
Committed By: maxv
Date: Mon Feb 12 12:52:13 UTC 2018
Modified Files:
src/sys/netinet6: icmp6.c ip6_input.c ip6_output.c
Log Message:
Replace bcopy -> memcpy when it is obvious that the areas don't overlap.
Rearrange ip6_splithdr() for clarity.
To generate a diff of this commit:
cvs rdiff -u -r1.219 -r1.220 src/sys/netinet6/icmp6.c
cvs rdiff -u -r1.190 -r1.191 src/sys/netinet6/ip6_input.c
cvs rdiff -u -r1.200 -r1.201 src/sys/netinet6/ip6_output.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/netinet6/icmp6.c
diff -u src/sys/netinet6/icmp6.c:1.219 src/sys/netinet6/icmp6.c:1.220
--- src/sys/netinet6/icmp6.c:1.219 Tue Jan 23 10:55:38 2018
+++ src/sys/netinet6/icmp6.c Mon Feb 12 12:52:12 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: icmp6.c,v 1.219 2018/01/23 10:55:38 maxv Exp $ */
+/* $NetBSD: icmp6.c,v 1.220 2018/02/12 12:52:12 maxv Exp $ */
/* $KAME: icmp6.c,v 1.217 2001/06/20 15:03:29 jinmei Exp $ */
/*
@@ -62,7 +62,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: icmp6.c,v 1.219 2018/01/23 10:55:38 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: icmp6.c,v 1.220 2018/02/12 12:52:12 maxv Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -1486,7 +1486,7 @@ ni6_input(struct mbuf *m, int off)
nni6->ni_flags = htons(0x0000); /* raw bitmap */
/* supports NOOP, SUPTYPES, FQDN, and NODEADDR */
v = (u_int32_t)htonl(0x0000000f);
- bcopy(&v, nni6 + 1, sizeof(u_int32_t));
+ memcpy(nni6 + 1, &v, sizeof(u_int32_t));
break;
}
case NI_QTYPE_FQDN:
@@ -1580,7 +1580,7 @@ ni6_nametodns(const char *name, int name
if (old) {
m->m_len = len;
*mtod(m, char *) = namelen;
- bcopy(name, mtod(m, char *) + 1, namelen);
+ memcpy(mtod(m, char *) + 1, name, namelen);
return m;
} else {
m->m_len = 0;
@@ -1927,7 +1927,7 @@ again:
ltime = 0x7fffffff;
ltime = htonl(ltime);
- bcopy(<ime, cp, sizeof(u_int32_t));
+ memcpy(cp, <ime, sizeof(u_int32_t));
cp += sizeof(u_int32_t);
/* copy the address itself */
@@ -2109,7 +2109,7 @@ icmp6_reflect(struct mbuf *m, size_t off
if ((m = m_pullup(m, l)) == NULL)
return;
}
- bcopy((void *)&nip6, mtod(m, void *), sizeof(nip6));
+ memcpy(mtod(m, void *), (void *)&nip6, sizeof(nip6));
} else {
size_t l = sizeof(struct ip6_hdr) + sizeof(struct icmp6_hdr);
if (m->m_len < l) {
Index: src/sys/netinet6/ip6_input.c
diff -u src/sys/netinet6/ip6_input.c:1.190 src/sys/netinet6/ip6_input.c:1.191
--- src/sys/netinet6/ip6_input.c:1.190 Fri Feb 9 18:31:52 2018
+++ src/sys/netinet6/ip6_input.c Mon Feb 12 12:52:12 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: ip6_input.c,v 1.190 2018/02/09 18:31:52 maxv Exp $ */
+/* $NetBSD: ip6_input.c,v 1.191 2018/02/12 12:52:12 maxv Exp $ */
/* $KAME: ip6_input.c,v 1.188 2001/03/29 05:34:31 itojun Exp $ */
/*
@@ -62,7 +62,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip6_input.c,v 1.190 2018/02/09 18:31:52 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip6_input.c,v 1.191 2018/02/12 12:52:12 maxv Exp $");
#ifdef _KERNEL_OPT
#include "opt_gateway.h"
@@ -960,7 +960,7 @@ ip6_process_hopopts(struct mbuf *m, u_in
/*
* We may see jumbolen in unaligned location, so
- * we'd need to perform bcopy().
+ * we'd need to perform memcpy().
*/
memcpy(&jumboplen, opt + 2, sizeof(jumboplen));
jumboplen = (u_int32_t)htonl(jumboplen);
Index: src/sys/netinet6/ip6_output.c
diff -u src/sys/netinet6/ip6_output.c:1.200 src/sys/netinet6/ip6_output.c:1.201
--- src/sys/netinet6/ip6_output.c:1.200 Wed Jan 31 15:23:08 2018
+++ src/sys/netinet6/ip6_output.c Mon Feb 12 12:52:12 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: ip6_output.c,v 1.200 2018/01/31 15:23:08 maxv Exp $ */
+/* $NetBSD: ip6_output.c,v 1.201 2018/02/12 12:52:12 maxv Exp $ */
/* $KAME: ip6_output.c,v 1.172 2001/03/25 09:55:56 itojun Exp $ */
/*
@@ -62,7 +62,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.200 2018/01/31 15:23:08 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.201 2018/02/12 12:52:12 maxv Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -1115,7 +1115,7 @@ ip6_copyexthdr(struct mbuf **mp, void *h
}
m->m_len = hlen;
if (hdr)
- bcopy(hdr, mtod(m, void *), hlen);
+ memcpy(mtod(m, void *), hdr, hlen);
*mp = m;
return 0;
@@ -1236,7 +1236,7 @@ ip6_insert_jumboopt(struct ip6_exthdrs *
optbuf[2] = IP6OPT_JUMBO;
optbuf[3] = 4;
v = (u_int32_t)htonl(plen + JUMBOOPTLEN);
- bcopy(&v, &optbuf[4], sizeof(u_int32_t));
+ memcpy(&optbuf[4], &v, sizeof(u_int32_t));
/* finally, adjust the packet header length */
exthdrs->ip6e_ip6->m_pkthdr.len += JUMBOOPTLEN;
@@ -3328,7 +3328,7 @@ ip6_mloopback(struct ifnet *ifp, struct
* Chop IPv6 header off from the payload.
*/
static int
-ip6_splithdr(struct mbuf *m, struct ip6_exthdrs *exthdrs)
+ip6_splithdr(struct mbuf *m, struct ip6_exthdrs *exthdrs)
{
struct mbuf *mh;
struct ip6_hdr *ip6;
@@ -3336,7 +3336,7 @@ ip6_splithdr(struct mbuf *m, struct ip6
ip6 = mtod(m, struct ip6_hdr *);
if (m->m_len > sizeof(*ip6)) {
MGETHDR(mh, M_DONTWAIT, MT_HEADER);
- if (mh == 0) {
+ if (mh == NULL) {
m_freem(m);
return ENOBUFS;
}
@@ -3345,9 +3345,9 @@ ip6_splithdr(struct mbuf *m, struct ip6
m->m_len -= sizeof(*ip6);
m->m_data += sizeof(*ip6);
mh->m_next = m;
+ mh->m_len = sizeof(*ip6);
+ memcpy(mtod(mh, void *), (void *)ip6, sizeof(*ip6));
m = mh;
- m->m_len = sizeof(*ip6);
- bcopy((void *)ip6, mtod(m, void *), sizeof(*ip6));
}
exthdrs->ip6e_ip6 = m;
return 0;