Module Name:    src
Committed By:   roy
Date:           Wed Feb  3 11:53:43 UTC 2021

Modified Files:
        src/sys/net: if_arp.h if_ether.h if_gre.h
        src/sys/netinet: if_ether.h igmp.h in.h ip.h ip6.h ip_icmp.h
            ip_mroute.h ip_var.h tcp.h tcp_var.h udp.h udp_var.h

Log Message:
Sprinkle CTASSERT to enforce on-wire layout without __packed


To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.36 src/sys/net/if_arp.h
cvs rdiff -u -r1.82 -r1.83 src/sys/net/if_ether.h
cvs rdiff -u -r1.45 -r1.46 src/sys/net/if_gre.h
cvs rdiff -u -r1.35 -r1.36 src/sys/netinet/if_ether.h src/sys/netinet/tcp.h
cvs rdiff -u -r1.13 -r1.14 src/sys/netinet/igmp.h
cvs rdiff -u -r1.112 -r1.113 src/sys/netinet/in.h
cvs rdiff -u -r1.36 -r1.37 src/sys/netinet/ip.h
cvs rdiff -u -r1.27 -r1.28 src/sys/netinet/ip6.h
cvs rdiff -u -r1.41 -r1.42 src/sys/netinet/ip_icmp.h
cvs rdiff -u -r1.33 -r1.34 src/sys/netinet/ip_mroute.h
cvs rdiff -u -r1.131 -r1.132 src/sys/netinet/ip_var.h
cvs rdiff -u -r1.193 -r1.194 src/sys/netinet/tcp_var.h
cvs rdiff -u -r1.17 -r1.18 src/sys/netinet/udp.h
cvs rdiff -u -r1.47 -r1.48 src/sys/netinet/udp_var.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/net/if_arp.h
diff -u src/sys/net/if_arp.h:1.35 src/sys/net/if_arp.h:1.36
--- src/sys/net/if_arp.h:1.35	Wed Feb  3 10:31:10 2021
+++ src/sys/net/if_arp.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_arp.h,v 1.35 2021/02/03 10:31:10 roy Exp $	*/
+/*	$NetBSD: if_arp.h,v 1.36 2021/02/03 11:53:43 roy Exp $	*/
 
 /*
  * Copyright (c) 1986, 1993
@@ -72,6 +72,9 @@ struct	arphdr {
 	uint8_t  ar_tpa[];	/* target protocol address */
 #endif
 };
+#ifdef CTASSERT
+CTASSERT(sizeof(struct arphdr) == 8);
+#endif
 
 static __inline uint8_t *
 ar_data(struct arphdr *ap)

Index: src/sys/net/if_ether.h
diff -u src/sys/net/if_ether.h:1.82 src/sys/net/if_ether.h:1.83
--- src/sys/net/if_ether.h:1.82	Wed Feb  3 05:51:40 2021
+++ src/sys/net/if_ether.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_ether.h,v 1.82 2021/02/03 05:51:40 roy Exp $	*/
+/*	$NetBSD: if_ether.h,v 1.83 2021/02/03 11:53:43 roy Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -90,6 +90,11 @@ struct ether_header {
 	uint16_t ether_type;
 };
 
+#ifdef CTASSERT
+CTASSERT(sizeof(struct ether_addr) == 6);
+CTASSERT(sizeof(struct ether_header) == 14);
+#endif
+
 #include <net/ethertypes.h>
 
 #define	ETHER_IS_MULTICAST(addr) (*(addr) & 0x01) /* is address mcast/bcast? */

Index: src/sys/net/if_gre.h
diff -u src/sys/net/if_gre.h:1.45 src/sys/net/if_gre.h:1.46
--- src/sys/net/if_gre.h:1.45	Wed Feb  3 05:51:40 2021
+++ src/sys/net/if_gre.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_gre.h,v 1.45 2021/02/03 05:51:40 roy Exp $ */
+/*	$NetBSD: if_gre.h,v 1.46 2021/02/03 11:53:43 roy Exp $ */
 
 /*
  * Copyright (c) 1998, 2008 The NetBSD Foundation, Inc.
@@ -131,6 +131,9 @@ struct gre_h {
 				Present if (rt_pres == 1)
  */
 };
+#ifdef CTASSERT
+CTASSERT(sizeof(struct gre_h) == 4);
+#endif
 
 #define GRE_CP		0x8000  /* Checksum Present */
 #define GRE_RP		0x4000  /* Routing Present */

Index: src/sys/netinet/if_ether.h
diff -u src/sys/netinet/if_ether.h:1.35 src/sys/netinet/if_ether.h:1.36
--- src/sys/netinet/if_ether.h:1.35	Wed Feb  3 05:51:40 2021
+++ src/sys/netinet/if_ether.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_ether.h,v 1.35 2021/02/03 05:51:40 roy Exp $	*/
+/*	$NetBSD: if_ether.h,v 1.36 2021/02/03 11:53:43 roy Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -76,6 +76,7 @@ struct	ether_arp {
 	u_int8_t arp_tha[ETHER_ADDR_LEN];	/* target hardware address */
 	u_int8_t arp_tpa[4];			/* target protocol address */
 };
+CTASSERT(sizeof(struct ether_arp) == 28);
 #define	arp_hrd	ea_hdr.ar_hrd
 #define	arp_pro	ea_hdr.ar_pro
 #define	arp_hln	ea_hdr.ar_hln
Index: src/sys/netinet/tcp.h
diff -u src/sys/netinet/tcp.h:1.35 src/sys/netinet/tcp.h:1.36
--- src/sys/netinet/tcp.h:1.35	Wed Feb  3 05:51:40 2021
+++ src/sys/netinet/tcp.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tcp.h,v 1.35 2021/02/03 05:51:40 roy Exp $	*/
+/*	$NetBSD: tcp.h,v 1.36 2021/02/03 11:53:43 roy Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -73,6 +73,9 @@ struct tcphdr {
 	uint16_t th_sum;			/* checksum */
 	uint16_t th_urp;			/* urgent pointer */
 };
+#ifdef CTASSERT
+CTASSERT(sizeof(struct tcphdr) == 20);
+#endif
 
 #define	TCPOPT_EOL		0
 #define	   TCPOLEN_EOL			1

Index: src/sys/netinet/igmp.h
diff -u src/sys/netinet/igmp.h:1.13 src/sys/netinet/igmp.h:1.14
--- src/sys/netinet/igmp.h:1.13	Wed Feb  3 05:51:40 2021
+++ src/sys/netinet/igmp.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: igmp.h,v 1.13 2021/02/03 05:51:40 roy Exp $	*/
+/*	$NetBSD: igmp.h,v 1.14 2021/02/03 11:53:43 roy Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -89,6 +89,9 @@ struct igmp {
 	uint16_t	igmp_cksum;	/* IP-style checksum               */
 	struct in_addr	igmp_group;	/* group address being reported    */
 };			/*  (zero for queries)             */
+#ifdef CTASSERT
+CTASSERT(sizeof(struct igmp) == 8);
+#endif
 
 #define	IGMP_MINLEN			8
 

Index: src/sys/netinet/in.h
diff -u src/sys/netinet/in.h:1.112 src/sys/netinet/in.h:1.113
--- src/sys/netinet/in.h:1.112	Wed Feb  3 05:51:40 2021
+++ src/sys/netinet/in.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: in.h,v 1.112 2021/02/03 05:51:40 roy Exp $	*/
+/*	$NetBSD: in.h,v 1.113 2021/02/03 11:53:43 roy Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1990, 1993
@@ -158,6 +158,9 @@ typedef __sa_family_t	sa_family_t;
 struct in_addr {
 	in_addr_t s_addr;
 };
+#ifdef CTASSERT
+CTASSERT(sizeof(struct in_addr) == 4);
+#endif
 
 /*
  * Definitions of bits in internet address integers.

Index: src/sys/netinet/ip.h
diff -u src/sys/netinet/ip.h:1.36 src/sys/netinet/ip.h:1.37
--- src/sys/netinet/ip.h:1.36	Wed Feb  3 05:51:40 2021
+++ src/sys/netinet/ip.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip.h,v 1.36 2021/02/03 05:51:40 roy Exp $	*/
+/*	$NetBSD: ip.h,v 1.37 2021/02/03 11:53:43 roy Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -248,4 +248,10 @@ struct ippseudo {
 	u_int16_t	ippseudo_len;	/* protocol length */
 };
 
+#ifdef CTASSERT
+CTASSERT(sizeof(struct ip) == 20);
+CTASSERT(sizeof(struct ip_timestamp) == 12);
+CTASSERT(sizeof(struct ippseudo) == 12);
+#endif
+
 #endif	/* !_NETINET_IP_H_ */

Index: src/sys/netinet/ip6.h
diff -u src/sys/netinet/ip6.h:1.27 src/sys/netinet/ip6.h:1.28
--- src/sys/netinet/ip6.h:1.27	Wed Feb  3 05:51:40 2021
+++ src/sys/netinet/ip6.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip6.h,v 1.27 2021/02/03 05:51:40 roy Exp $	*/
+/*	$NetBSD: ip6.h,v 1.28 2021/02/03 11:53:43 roy Exp $	*/
 /*	$KAME: ip6.h,v 1.45 2003/06/05 04:46:38 keiichi Exp $	*/
 
 /*
@@ -120,6 +120,8 @@ struct ip6_hdr_pseudo {
 	u_int8_t	ip6ph_zero[3];
 	u_int8_t	ip6ph_nxt;
 };
+CTASSERT(sizeof(struct ip6_hdr) == 40);
+CTASSERT(sizeof(struct ip6_hdr_pseudo) == 40);
 #endif
 
 /*

Index: src/sys/netinet/ip_icmp.h
diff -u src/sys/netinet/ip_icmp.h:1.41 src/sys/netinet/ip_icmp.h:1.42
--- src/sys/netinet/ip_icmp.h:1.41	Wed Feb  3 05:51:40 2021
+++ src/sys/netinet/ip_icmp.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip_icmp.h,v 1.41 2021/02/03 05:51:40 roy Exp $	*/
+/*	$NetBSD: ip_icmp.h,v 1.42 2021/02/03 11:53:43 roy Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -160,6 +160,13 @@ struct icmp_ext_obj_hdr {
 	uint8_t c_type;
 };
 
+#ifdef CTASSERT
+CTASSERT(sizeof(struct icmp_ra_addr) == 8);
+CTASSERT(sizeof(struct icmp) == 28);
+CTASSERT(sizeof(struct icmp_ext_hdr) == 4);
+CTASSERT(sizeof(struct icmp_ext_obj_hdr) == 4);
+#endif
+
 /*
  * Lower bounds on packet lengths for various types.
  * For the error advice packets must first insure that the

Index: src/sys/netinet/ip_mroute.h
diff -u src/sys/netinet/ip_mroute.h:1.33 src/sys/netinet/ip_mroute.h:1.34
--- src/sys/netinet/ip_mroute.h:1.33	Wed Feb  3 05:51:40 2021
+++ src/sys/netinet/ip_mroute.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip_mroute.h,v 1.33 2021/02/03 05:51:40 roy Exp $	*/
+/*	$NetBSD: ip_mroute.h,v 1.34 2021/02/03 11:53:43 roy Exp $	*/
 
 #ifndef _NETINET_IP_MROUTE_H_
 #define _NETINET_IP_MROUTE_H_
@@ -284,6 +284,9 @@ struct igmpmsg {
 	u_int8_t  unused3;
 	struct	  in_addr im_src, im_dst;
 };
+#ifdef CTASSERT
+CTASSERT(sizeof(struct igmpmsg) == 20);
+#endif
 
 /*
  * Argument structure used for pkt info. while upcall is made.

Index: src/sys/netinet/ip_var.h
diff -u src/sys/netinet/ip_var.h:1.131 src/sys/netinet/ip_var.h:1.132
--- src/sys/netinet/ip_var.h:1.131	Wed Feb  3 05:51:40 2021
+++ src/sys/netinet/ip_var.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip_var.h,v 1.131 2021/02/03 05:51:40 roy Exp $	*/
+/*	$NetBSD: ip_var.h,v 1.132 2021/02/03 11:53:43 roy Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -47,6 +47,9 @@ struct ipovly {
 	struct	  in_addr ih_src;	/* source internet address */
 	struct	  in_addr ih_dst;	/* destination internet address */
 };
+#ifdef CTASSERT
+CTASSERT(sizeof(struct ipovly) == 20);
+#endif
 
 /*
  * IP Flow structure

Index: src/sys/netinet/tcp_var.h
diff -u src/sys/netinet/tcp_var.h:1.193 src/sys/netinet/tcp_var.h:1.194
--- src/sys/netinet/tcp_var.h:1.193	Wed Feb  3 05:51:40 2021
+++ src/sys/netinet/tcp_var.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tcp_var.h,v 1.193 2021/02/03 05:51:40 roy Exp $	*/
+/*	$NetBSD: tcp_var.h,v 1.194 2021/02/03 11:53:43 roy Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -169,6 +169,9 @@ struct tcpiphdr {
 	struct ipovly ti_i;		/* overlaid ip structure */
 	struct tcphdr ti_t;		/* tcp header */
 };
+#ifdef CTASSERT
+CTASSERT(sizeof(struct tcpiphdr) == 40);
+#endif
 #define	ti_x1		ti_i.ih_x1
 #define	ti_pr		ti_i.ih_pr
 #define	ti_len		ti_i.ih_len

Index: src/sys/netinet/udp.h
diff -u src/sys/netinet/udp.h:1.17 src/sys/netinet/udp.h:1.18
--- src/sys/netinet/udp.h:1.17	Wed Feb  3 05:51:40 2021
+++ src/sys/netinet/udp.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: udp.h,v 1.17 2021/02/03 05:51:40 roy Exp $	*/
+/*	$NetBSD: udp.h,v 1.18 2021/02/03 11:53:43 roy Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -45,6 +45,9 @@ struct udphdr {
 	uint16_t uh_ulen;		/* udp length */
 	uint16_t uh_sum;		/* udp checksum */
 };
+#ifdef CTASSERT
+CTASSERT(sizeof(struct udphdr) == 8);
+#endif
 
 /* socket options for UDP */
 #define	UDP_ENCAP	100

Index: src/sys/netinet/udp_var.h
diff -u src/sys/netinet/udp_var.h:1.47 src/sys/netinet/udp_var.h:1.48
--- src/sys/netinet/udp_var.h:1.47	Wed Feb  3 05:51:40 2021
+++ src/sys/netinet/udp_var.h	Wed Feb  3 11:53:43 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: udp_var.h,v 1.47 2021/02/03 05:51:40 roy Exp $	*/
+/*	$NetBSD: udp_var.h,v 1.48 2021/02/03 11:53:43 roy Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -41,6 +41,9 @@ struct	udpiphdr {
 	struct	ipovly ui_i;		/* overlaid ip structure */
 	struct	udphdr ui_u;		/* udp header */
 };
+#ifdef CTASSERT
+CTASSERT(sizeof(struct udpiphdr) == 28);
+#endif
 #define	ui_x1		ui_i.ih_x1
 #define	ui_pr		ui_i.ih_pr
 #define	ui_len		ui_i.ih_len

Reply via email to