DragonFlyBSD Kernel Audit
DF-0235 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/kern/kern_wdog.c b/sys/kern/kern_wdog.c
--- a/sys/kern/kern_wdog.c
+++ b/sys/kern/kern_wdog.c
@@ -118,8 +118,13 @@
 
 	spin_lock(&wdogmtx);
 	LIST_FOREACH(wd, &wdoglist, link) {
-		/* XXX: check for period_max */
-		wd->period = period;
+		/* Clamp to the maximum supported period. */
+		if (wd->period_max != 0 && period > wd->period_max)
+			wd->period = wd->period_max;
+		else if (period < 0)
+			wd->period = 0;
+		else
+			wd->period = period;
 	}
 	spin_unlock(&wdogmtx);
 }