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