DragonFlyBSD Kernel Audit
DF-2867 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/platform/pc64/x86_64/trap.c b/sys/platform/pc64/x86_64/trap.c
--- a/sys/platform/pc64/x86_64/trap.c	2026-09-02 15:17:01.489959357 +0000
+++ b/sys/platform/pc64/x86_64/trap.c	2026-09-02 15:17:01.513959060 +0000
@@ -1239,6 +1239,8 @@
 
 		argsdst = (register_t *)&sysmsg.extargs;
 		bcopy(argp, argsdst, sizeof(register_t) * regcnt);
+		bzero(&argsdst[regcnt],
+		      (narg - regcnt) * sizeof(register_t));
 		params = (caddr_t)frame->tf_rsp + sizeof(register_t);
 		error = copyin(params, &argsdst[regcnt],
 			       (narg - regcnt) * sizeof(register_t));
@@ -1418,6 +1420,8 @@
 
 		argsdst = (register_t *)&sysmsg->extargs;
 		bcopy(argp, argsdst, sizeof(register_t) * regcnt);
+		bzero(&argsdst[regcnt],
+		      (narg - regcnt) * sizeof(register_t));
 		params = (caddr_t)frame->tf_rsp + sizeof(register_t);
 		error = copyin(params, &argsdst[regcnt],
 			       (narg - regcnt) * sizeof(register_t));
diff --git a/sys/platform/vkernel64/x86_64/trap.c b/sys/platform/vkernel64/x86_64/trap.c
--- a/sys/platform/vkernel64/x86_64/trap.c	2026-09-02 15:17:01.493959308 +0000
+++ b/sys/platform/vkernel64/x86_64/trap.c	2026-09-02 15:17:01.513959060 +0000
@@ -1078,6 +1078,8 @@
 
 		argsdst = (register_t *)&sysmsg.extargs;
 		bcopy(argp, argsdst, sizeof(register_t) * regcnt);
+		bzero(&argsdst[regcnt],
+		      (narg - regcnt) * sizeof(register_t));
 		params = (caddr_t)frame->tf_rsp + sizeof(register_t);
 
 		KASSERT(params != NULL, ("copyin args with no params!"));