summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2015-06-03 13:12:08 +0000
committeremaste <emaste@FreeBSD.org>2015-06-03 13:12:08 +0000
commit02441119bc168497d2df4672b0666f72aa513093 (patch)
treeb6150bef2a216f982907b60e9a8b0cdb5470b02a
parente6fee85e82f35c9e4608b51187e64068dd3e1366 (diff)
downloadFreeBSD-src-02441119bc168497d2df4672b0666f72aa513093.zip
FreeBSD-src-02441119bc168497d2df4672b0666f72aa513093.tar.gz
MFC r261220 by csjp: Allow sigwait(2) in capabilities mode.
It's common for multi-threaded processes to create a thread for the purpose of synchronously processing signals. Allow such processes to utilize a capabilities sandbox.
-rw-r--r--sys/kern/capabilities.conf1
-rw-r--r--sys/kern/init_sysent.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/capabilities.conf b/sys/kern/capabilities.conf
index 8d33472..f7a46ae 100644
--- a/sys/kern/capabilities.conf
+++ b/sys/kern/capabilities.conf
@@ -667,6 +667,7 @@ sigsuspend
sigtimedwait
sigvec
sigwaitinfo
+sigwait
##
## Allow creating new socket pairs with socket(2) and socketpair(2).
diff --git a/sys/kern/init_sysent.c b/sys/kern/init_sysent.c
index 5b6f093..d29b3a6 100644
--- a/sys/kern/init_sysent.c
+++ b/sys/kern/init_sysent.c
@@ -463,7 +463,7 @@ struct sysent sysent[] = {
{ AS(__acl_set_link_args), (sy_call_t *)sys___acl_set_link, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 426 = __acl_set_link */
{ AS(__acl_delete_link_args), (sy_call_t *)sys___acl_delete_link, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 427 = __acl_delete_link */
{ AS(__acl_aclcheck_link_args), (sy_call_t *)sys___acl_aclcheck_link, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 428 = __acl_aclcheck_link */
- { AS(sigwait_args), (sy_call_t *)sys_sigwait, AUE_SIGWAIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 429 = sigwait */
+ { AS(sigwait_args), (sy_call_t *)sys_sigwait, AUE_SIGWAIT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 429 = sigwait */
{ AS(thr_create_args), (sy_call_t *)sys_thr_create, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 430 = thr_create */
{ AS(thr_exit_args), (sy_call_t *)sys_thr_exit, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 431 = thr_exit */
{ AS(thr_self_args), (sy_call_t *)sys_thr_self, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 432 = thr_self */
OpenPOWER on IntegriCloud