DragonFlyBSD Kernel Audit
DF-0310 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netinet6/ip6_output.c b/sys/netinet6/ip6_output.c
--- a/sys/netinet6/ip6_output.c
+++ b/sys/netinet6/ip6_output.c
@@ -750,7 +750,7 @@
 	} else {
 		struct mbuf **mnext, *m_frgpart;
 		struct ip6_frag *ip6f;
-		u_int32_t id = htonl(ip6_id++);
+		u_int32_t id = htonl(atomic_fetchadd_int(&ip6_id, 1));
 		u_char nextproto;
 
 		/*