⬢ DragonFlyBSD Kernel Audit
DF-2852 / fix.diff
← back to finding ↓ download raw
--- a/sys/kern/kern_device.c	2026-06-29 12:51:19.000000000 +0000
+++ b/sys/kern/kern_device.c	2026-10-26 00:25:42.777043079 +0000
@@ -270,6 +270,7 @@
 	ap.a_offset = offset;
 	ap.a_nprot = nprot;
 	ap.a_fp = fp;
+	ap.a_result = 0;
 
 	if (needmplock)
 		get_mplock();
@@ -314,6 +315,11 @@
 	int needmplock = dev_needmplock(dev);
 	int error;
 
+	/*
+	 * a_name/a_namelen/a_cred/a_mode must be valid even for drivers
+	 * that only read a subset of them.
+	 */
+	bzero(&ap, sizeof(ap));
 	ap.a_head.a_desc = &dev_clone_desc;
 	ap.a_head.a_dev = dev;
 
@@ -454,6 +460,7 @@
 
 	ap.a_head.a_desc = &dev_psize_desc;
 	ap.a_head.a_dev = dev;
+	ap.a_result = 0;
 
 	if (needmplock)
 		get_mplock();