Module Name: src
Committed By: martin
Date: Fri Nov 30 10:36:09 UTC 2018
Modified Files:
src/sys/kern [netbsd-7]: kern_sig.c
Log Message:
Pull up following revision(s) (requested by maxv in ticket #1661):
sys/kern/kern_sig.c: revision 1.350
Fix kernel info leak, 4 bytes of padding at the end of struct sigaction.
+ Possible info leak: [len=32, leaked=4]
| #0 0xffffffff80baf327 in kleak_copyout
| #1 0xffffffff80bd9ca8 in sys___sigaction_sigtramp
| #2 0xffffffff80259c42 in syscall
To generate a diff of this commit:
cvs rdiff -u -r1.319.4.1 -r1.319.4.2 src/sys/kern/kern_sig.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/kern/kern_sig.c
diff -u src/sys/kern/kern_sig.c:1.319.4.1 src/sys/kern/kern_sig.c:1.319.4.2
--- src/sys/kern/kern_sig.c:1.319.4.1 Thu Nov 5 09:21:30 2015
+++ src/sys/kern/kern_sig.c Fri Nov 30 10:36:09 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_sig.c,v 1.319.4.1 2015/11/05 09:21:30 snj Exp $ */
+/* $NetBSD: kern_sig.c,v 1.319.4.2 2018/11/30 10:36:09 martin Exp $ */
/*-
* Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.319.4.1 2015/11/05 09:21:30 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.319.4.2 2018/11/30 10:36:09 martin Exp $");
#include "opt_ptrace.h"
#include "opt_compat_sunos.h"
@@ -191,6 +191,13 @@ signal_listener_cb(kauth_cred_t cred, ka
return result;
}
+static int
+sigacts_ctor(void *arg __unused, void *obj, int flags __unused)
+{
+ memset(obj, 0, sizeof(struct sigacts));
+ return 0;
+}
+
/*
* signal_init:
*
@@ -204,7 +211,7 @@ signal_init(void)
sigacts_cache = pool_cache_init(sizeof(struct sigacts), 0, 0, 0,
"sigacts", sizeof(struct sigacts) > PAGE_SIZE ?
- &sigactspool_allocator : NULL, IPL_NONE, NULL, NULL, NULL);
+ &sigactspool_allocator : NULL, IPL_NONE, sigacts_ctor, NULL, NULL);
ksiginfo_cache = pool_cache_init(sizeof(ksiginfo_t), 0, 0, 0,
"ksiginfo", NULL, IPL_VM, NULL, NULL, NULL);