aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVal Packett <val@packett.cool>2023-02-05 20:52:50 +0000
committerEd Maste <emaste@FreeBSD.org>2023-02-06 19:00:52 +0000
commit4a1c4de232af202aa5fa02c7adaa97174997ae61 (patch)
tree3124066f025d5b2d87dc3c55de5532a278d532aa
parent61593cb297023ac0fb226f3deb157ed63047d6a2 (diff)
downloadsrc-4a1c4de232af202aa5fa02c7adaa97174997ae61.tar.gz
src-4a1c4de232af202aa5fa02c7adaa97174997ae61.zip
Allow sysctl hw.machine/hw.machine_arch in capability mode
There's no harm in reading strings like 'amd64'. Reviewed by: emaste, manu Sponsored by: https://www.patreon.com/valpackett Differential Revision: https://reviews.freebsd.org/D28703
-rw-r--r--sys/arm/arm/identcpu-v6.c2
-rw-r--r--sys/arm64/arm64/identcpu.c3
-rw-r--r--sys/kern/kern_mib.c2
-rw-r--r--sys/powerpc/powerpc/machdep.c2
-rw-r--r--sys/riscv/riscv/identcpu.c2
-rw-r--r--sys/x86/x86/identcpu.c4
6 files changed, 8 insertions, 7 deletions
diff --git a/sys/arm/arm/identcpu-v6.c b/sys/arm/arm/identcpu-v6.c
index ad23d65b6b6f..92656ca3b376 100644
--- a/sys/arm/arm/identcpu-v6.c
+++ b/sys/arm/arm/identcpu-v6.c
@@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$");
char machine[] = "arm";
-SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD,
+SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD | CTLFLAG_CAPRD,
machine, 0, "Machine class");
static char cpu_model[64];
diff --git a/sys/arm64/arm64/identcpu.c b/sys/arm64/arm64/identcpu.c
index dadb589e9294..299d0fb0e38d 100644
--- a/sys/arm64/arm64/identcpu.c
+++ b/sys/arm64/arm64/identcpu.c
@@ -98,7 +98,8 @@ sysctl_hw_machine(SYSCTL_HANDLER_ARGS)
}
SYSCTL_PROC(_hw, HW_MACHINE, machine, CTLTYPE_STRING | CTLFLAG_RD |
- CTLFLAG_MPSAFE, NULL, 0, sysctl_hw_machine, "A", "Machine class");
+ CTLFLAG_CAPRD | CTLFLAG_MPSAFE, NULL, 0, sysctl_hw_machine, "A",
+ "Machine class");
static char cpu_model[64];
SYSCTL_STRING(_hw, HW_MODEL, model, CTLFLAG_RD,
diff --git a/sys/kern/kern_mib.c b/sys/kern/kern_mib.c
index 483bbe453b0c..155a81312717 100644
--- a/sys/kern/kern_mib.c
+++ b/sys/kern/kern_mib.c
@@ -315,7 +315,7 @@ sysctl_hw_machine_arch(SYSCTL_HANDLER_ARGS)
return (SYSCTL_OUT(req, machine_arch, strlen(machine_arch) + 1));
}
SYSCTL_PROC(_hw, HW_MACHINE_ARCH, machine_arch, CTLTYPE_STRING | CTLFLAG_RD |
- CTLFLAG_MPSAFE, NULL, 0, sysctl_hw_machine_arch, "A",
+ CTLFLAG_CAPRD | CTLFLAG_MPSAFE, NULL, 0, sysctl_hw_machine_arch, "A",
"System architecture");
#ifndef MACHINE_ARCHES
diff --git a/sys/powerpc/powerpc/machdep.c b/sys/powerpc/powerpc/machdep.c
index 84c3db924f68..8140bbd79155 100644
--- a/sys/powerpc/powerpc/machdep.c
+++ b/sys/powerpc/powerpc/machdep.c
@@ -155,7 +155,7 @@ static char init_kenv[2048];
static struct trapframe frame0;
char machine[] = "powerpc";
-SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD, machine, 0, "");
+SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD | CTLFLAG_CAPRD, machine, 0, "");
static void cpu_startup(void *);
SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL);
diff --git a/sys/riscv/riscv/identcpu.c b/sys/riscv/riscv/identcpu.c
index 4c151eb47939..5f10ec6358ae 100644
--- a/sys/riscv/riscv/identcpu.c
+++ b/sys/riscv/riscv/identcpu.c
@@ -58,7 +58,7 @@ __FBSDID("$FreeBSD$");
char machine[] = "riscv";
-SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD, machine, 0,
+SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD | CTLFLAG_CAPRD, machine, 0,
"Machine class");
/* Hardware implementation info. These values may be empty. */
diff --git a/sys/x86/x86/identcpu.c b/sys/x86/x86/identcpu.c
index 70bca3559555..2a009d7ec10a 100644
--- a/sys/x86/x86/identcpu.c
+++ b/sys/x86/x86/identcpu.c
@@ -153,9 +153,9 @@ sysctl_hw_machine(SYSCTL_HANDLER_ARGS)
}
SYSCTL_PROC(_hw, HW_MACHINE, machine, CTLTYPE_STRING | CTLFLAG_RD |
- CTLFLAG_MPSAFE, NULL, 0, sysctl_hw_machine, "A", "Machine class");
+ CTLFLAG_CAPRD | CTLFLAG_MPSAFE, NULL, 0, sysctl_hw_machine, "A", "Machine class");
#else
-SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD,
+SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD | CTLFLAG_CAPRD,
machine, 0, "Machine class");
#endif