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);