Index | Thread | Search

From:
Vitaliy Makkoveev <mvs@openbsd.org>
Subject:
Unlock most of `kern_vars' variables
To:
tech@openbsd.org
Date:
Fri, 2 Aug 2024 23:40:20 +0300

Download raw body.

Thread
Add corresponding cases to the kern_sysctl() switch and unlock read-only
variables from `kern_vars'. Unlock KERN_SOMAXCONN and KERN_SOMINCONN
which are mp-safe for a long time. They are accessed only in solisten().

ok?

I don't see the reason to split `kern_vars' by two parts.

Index: sys/kern/kern_sysctl.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_sysctl.c,v
diff -u -p -r1.430 kern_sysctl.c
--- sys/kern/kern_sysctl.c	2 Aug 2024 14:34:45 -0000	1.430
+++ sys/kern/kern_sysctl.c	2 Aug 2024 15:28:21 -0000
@@ -526,6 +526,30 @@ kern_sysctl(int *name, u_int namelen, vo
 		return (sysctl_rdstruct(oldp, oldlenp, newp,
 		    &mbs, sizeof(mbs)));
 	}
+	case KERN_OSREV:
+	case KERN_NFILES:
+	case KERN_TTYCOUNT:
+	case KERN_ARGMAX:
+	case KERN_POSIX1:
+	case KERN_NGROUPS:
+	case KERN_JOB_CONTROL:
+	case KERN_SAVED_IDS:
+	case KERN_MAXPARTITIONS:
+	case KERN_RAWPARTITION:
+	case KERN_NTHREADS:
+	case KERN_SOMAXCONN:
+	case KERN_SOMINCONN:
+	case KERN_FSYNC:
+	case KERN_SYSVMSG:
+	case KERN_SYSVSEM:
+	case KERN_SYSVSHM:
+	case KERN_FSCALE:
+	case KERN_CCPU:
+	case KERN_NPROCS:
+	case KERN_NETLIVELOCKS:
+	case KERN_AUTOCONF_SERIAL:
+		return (sysctl_bounded_arr(kern_vars, nitems(kern_vars), name,
+		    namelen, oldp, oldlenp, newp, newlen));
 	}
 
 	savelen = *oldlenp;