aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2026-09-01 16:07:09 +0000
committerMark Johnston <markj@FreeBSD.org>2026-09-02 17:40:15 +0000
commit6e94e0734b9d3036df8c7d94d827f8eb1119905b (patch)
tree9c5c74772f6b6473d6a07885ed5f4e4749ed098d
parentb1f63c6ab7df2f2f9febcd72e6af2e80fcc55197 (diff)
devstat: Fix a kernel stack disclosure
The 16-byte "device_name" field was not zero-filled, so could contain uninitialized stack data. Zero the whole struct, as that's the prevailing pattern for this kind of conversion code, and it's more robust in the face of future revisions to struct devstat. Reviewed by: olce, kib Reported by: Reo Shiseki Fixes: a11d132f6c62 ("devstat: Provide 32-bit compatibility") MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D59309 (cherry picked from commit 7cb1a76f88158fb690418336b736e66c238cd4f7)
-rw-r--r--sys/kern/subr_devstat.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/kern/subr_devstat.c b/sys/kern/subr_devstat.c
index 1bc37b970cbf..a421a1de2b0f 100644
--- a/sys/kern/subr_devstat.c
+++ b/sys/kern/subr_devstat.c
@@ -431,6 +431,7 @@ sysctl_devstat(SYSCTL_HANDLER_ARGS)
struct devstat32 ds32;
unsigned int i;
+ memset(&ds32, 0, sizeof(ds32));
CP(*nds, ds32, sequence0);
CP(*nds, ds32, allocated);
CP(*nds, ds32, start_count);