DragonFlyBSD Kernel Audit
DF-0760 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netinet/ip_id.c b/sys/netinet/ip_id.c
--- a/sys/netinet/ip_id.c
+++ b/sys/netinet/ip_id.c
@@ -45,6 +45,7 @@
 #include <sys/kernel.h>
 #include <sys/random.h>
 #include <sys/globaldata.h>
+#include <sys/thread2.h>
 
 #include <net/netmsg2.h>
 #include <net/netisr2.h>
@@ -112,6 +113,7 @@
 	u_int16_t si, r;
 	int i1, i2;
 
+	crit_enter();
 	info = &iprandcpu[gd->gd_cpuid];
 
 	/*
@@ -139,6 +141,7 @@
 	ip_shuffle[i2] = ip_shuffle[i1];
 	ip_shuffle[i1] = r;
 	info->isidx += ncpus_fit;
+	crit_exit();
 
 	return (r);
 }