Module Name: src
Committed By: joerg
Date: Thu Feb 3 21:45:32 UTC 2011
Modified Files:
src/sys/compat/irix: irix_signal.c
src/sys/compat/netbsd32: netbsd32_signal.c
src/sys/compat/svr4: svr4_signal.c
src/sys/kern: sys_sig.c
Log Message:
Explicitly initialize ucontext before calling getmcontext.
To generate a diff of this commit:
cvs rdiff -u -r1.55 -r1.56 src/sys/compat/irix/irix_signal.c
cvs rdiff -u -r1.34 -r1.35 src/sys/compat/netbsd32/netbsd32_signal.c
cvs rdiff -u -r1.64 -r1.65 src/sys/compat/svr4/svr4_signal.c
cvs rdiff -u -r1.30 -r1.31 src/sys/kern/sys_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/compat/irix/irix_signal.c
diff -u src/sys/compat/irix/irix_signal.c:1.55 src/sys/compat/irix/irix_signal.c:1.56
--- src/sys/compat/irix/irix_signal.c:1.55 Fri Jan 14 02:06:33 2011
+++ src/sys/compat/irix/irix_signal.c Thu Feb 3 21:45:31 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: irix_signal.c,v 1.55 2011/01/14 02:06:33 rmind Exp $ */
+/* $NetBSD: irix_signal.c,v 1.56 2011/02/03 21:45:31 joerg Exp $ */
/*-
* Copyright (c) 1994, 2001-2002 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: irix_signal.c,v 1.55 2011/01/14 02:06:33 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: irix_signal.c,v 1.56 2011/02/03 21:45:31 joerg Exp $");
#include <sys/types.h>
#include <sys/signal.h>
@@ -707,6 +707,8 @@
f = (struct frame *)l->l_md.md_regs;
+ memset(&kucp, 0, sizeof(kucp));
+
kucp.iuc_flags = IRIX_UC_ALL;
kucp.iuc_link = NULL; /* XXX */
Index: src/sys/compat/netbsd32/netbsd32_signal.c
diff -u src/sys/compat/netbsd32/netbsd32_signal.c:1.34 src/sys/compat/netbsd32/netbsd32_signal.c:1.35
--- src/sys/compat/netbsd32/netbsd32_signal.c:1.34 Fri Apr 23 15:19:20 2010
+++ src/sys/compat/netbsd32/netbsd32_signal.c Thu Feb 3 21:45:31 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_signal.c,v 1.34 2010/04/23 15:19:20 rmind Exp $ */
+/* $NetBSD: netbsd32_signal.c,v 1.35 2011/02/03 21:45:31 joerg Exp $ */
/*
* Copyright (c) 1998, 2001 Matthew R. Green
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_signal.c,v 1.34 2010/04/23 15:19:20 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_signal.c,v 1.35 2011/02/03 21:45:31 joerg Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -361,6 +361,8 @@
struct proc *p = l->l_proc;
ucontext32_t uc;
+ memset(&uc, 0, sizeof(uc));
+
mutex_enter(p->p_lock);
getucontext32(l, &uc);
mutex_exit(p->p_lock);
Index: src/sys/compat/svr4/svr4_signal.c
diff -u src/sys/compat/svr4/svr4_signal.c:1.64 src/sys/compat/svr4/svr4_signal.c:1.65
--- src/sys/compat/svr4/svr4_signal.c:1.64 Mon Apr 28 20:23:45 2008
+++ src/sys/compat/svr4/svr4_signal.c Thu Feb 3 21:45:31 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: svr4_signal.c,v 1.64 2008/04/28 20:23:45 martin Exp $ */
+/* $NetBSD: svr4_signal.c,v 1.65 2011/02/03 21:45:31 joerg Exp $ */
/*-
* Copyright (c) 1994, 1998 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: svr4_signal.c,v 1.64 2008/04/28 20:23:45 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: svr4_signal.c,v 1.65 2011/02/03 21:45:31 joerg Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -462,6 +462,8 @@
svr4_ucontext_t uc;
*retval = 0;
+ memset(&uc, 0, sizeof(uc));
+
switch (SCARG(uap, func)) {
case SVR4_GETCONTEXT:
DPRINTF(("getcontext(%p)\n", SCARG(uap, uc)));
Index: src/sys/kern/sys_sig.c
diff -u src/sys/kern/sys_sig.c:1.30 src/sys/kern/sys_sig.c:1.31
--- src/sys/kern/sys_sig.c:1.30 Mon Jan 10 04:39:18 2011
+++ src/sys/kern/sys_sig.c Thu Feb 3 21:45:32 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_sig.c,v 1.30 2011/01/10 04:39:18 christos Exp $ */
+/* $NetBSD: sys_sig.c,v 1.31 2011/02/03 21:45:32 joerg Exp $ */
/*-
* Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_sig.c,v 1.30 2011/01/10 04:39:18 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_sig.c,v 1.31 2011/02/03 21:45:32 joerg Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -317,6 +317,8 @@
struct proc *p = l->l_proc;
ucontext_t uc;
+ memset(&uc, 0, sizeof(uc));
+
mutex_enter(p->p_lock);
getucontext(l, &uc);
mutex_exit(p->p_lock);