DragonFlyBSD Kernel Audit
DF-0191 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/kern/subr_log.c b/sys/kern/subr_log.c
--- a/sys/kern/subr_log.c
+++ b/sys/kern/subr_log.c
@@ -85,8 +85,21 @@
 
 /* Times per second to check for a pending syslog wakeup. */
 static int	log_wakeups_per_second = 5;
-SYSCTL_INT(_kern, OID_AUTO, log_wakeups_per_second, CTLFLAG_RW,
-    &log_wakeups_per_second, 0, "");
+static int
+sysctl_log_wakeups_per_second(SYSCTL_HANDLER_ARGS)
+{
+	int error, val = log_wakeups_per_second;
+	error = sysctl_handle_int(oidp, &val, 0, req);
+	if (error || req->newptr == NULL)
+		return (error);
+	if (val <= 0 || val > hz)
+		return (EINVAL);
+	log_wakeups_per_second = val;
+	return (0);
+}
+SYSCTL_PROC(_kern, OID_AUTO, log_wakeups_per_second,
+    CTLTYPE_INT | CTLFLAG_RW, &log_wakeups_per_second, 0,
+    sysctl_log_wakeups_per_second, "I", "");
 
 /*ARGSUSED*/
 static	int