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(&ltime, cp, sizeof(u_int32_t));
+			memcpy(cp, &ltime, 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;

Reply via email to