⬢ DragonFlyBSD Kernel Audit
DF-2913 / fix.diff
← back to finding ↓ download raw
--- a/sys/kern/kern_plimit.c	2026-06-29 12:51:19.000000000 +0000
+++ b/sys/kern/kern_plimit.c	2026-10-26 00:25:42.777043079 +0000
@@ -186,7 +186,9 @@
 		if (count != 1) {
 			nlimit = kmalloc(sizeof(*nlimit), M_PLIMIT, M_WAITOK);
 			plimit_copy(olimit, nlimit);
+			spin_lock(&p->p_spin);
 			p->p_limit = nlimit;
+			spin_unlock(&p->p_spin);
 			plimit_free(olimit);
 			olimit = nlimit;
 		}
@@ -223,7 +225,9 @@
 		if (count != 1) {
 			nlimit = kmalloc(sizeof(*nlimit), M_PLIMIT, M_WAITOK);
 			plimit_copy(olimit, nlimit);
+			spin_lock(&p->p_spin);
 			p->p_limit = nlimit;
+			spin_unlock(&p->p_spin);
 			plimit_free(olimit);
 			olimit = nlimit;
 		}