summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authordrochner <drochner@NetBSD.org>2010-05-20 17:10:42 +0000
committerdrochner <drochner@NetBSD.org>2010-05-20 17:10:42 +0000
commit8239dc73b562cbe8bb280132899da3a51ced593e (patch)
tree6573f3244b650943fe5bb41f8f36890dbfc1c6c3 /sys
parent8cfbddcc72dda6bc9b9d96aa0c10e48ed305e1f9 (diff)
fix sigwaitinfo/sigtimedwait:
-allow NULL "info" pointer -return signal number
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/sys_sig.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/kern/sys_sig.c b/sys/kern/sys_sig.c
index 32b80d18969..c163a12eddb 100644
--- a/sys/kern/sys_sig.c
+++ b/sys/kern/sys_sig.c
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_sig.c,v 1.26 2010/01/19 22:28:31 pooka Exp $ */
+/* $NetBSD: sys_sig.c,v 1.27 2010/05/20 17:10:42 drochner 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.26 2010/01/19 22:28:31 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_sig.c,v 1.27 2010/05/20 17:10:42 drochner Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -742,9 +742,11 @@ out:
* Copy only the used part of siginfo, the padding part is
* left unchanged (userland is not supposed to touch it anyway).
*/
- if (error == 0) {
+ if (error == 0 && SCARG(uap, info)) {
error = (*storeinf)(&ksi.ksi_info, SCARG(uap, info),
sizeof(ksi.ksi_info));
}
+ if (error == 0)
+ *retval = ksi.ksi_info._signo;
return error;
}