Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Aug 2015 11:07:03 +0000 (UTC)
From:      Ed Schouten <ed@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r286661 - head/sys/compat/cloudabi
Message-ID:  <201508121107.t7CB73Ra084639@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ed
Date: Wed Aug 12 11:07:03 2015
New Revision: 286661
URL: https://svnweb.freebsd.org/changeset/base/286661

Log:
  Use CAP_EVENT instead of CAP_PDWAIT.
  
  The cloudlibc pdwait() function ends up using FreeBSD's kqueue() in
  combination with EVFILT_PROCDESC. This depends on CAP_EVENT -- not
  CAP_PDWAIT.
  
  Obtained from:	https://github.com/NuxiNL/freebsd

Modified:
  head/sys/compat/cloudabi/cloudabi_fd.c
  head/sys/compat/cloudabi/cloudabi_proc.c

Modified: head/sys/compat/cloudabi/cloudabi_fd.c
==============================================================================
--- head/sys/compat/cloudabi/cloudabi_fd.c	Wed Aug 12 10:34:05 2015	(r286660)
+++ head/sys/compat/cloudabi/cloudabi_fd.c	Wed Aug 12 11:07:03 2015	(r286661)
@@ -74,7 +74,7 @@ __FBSDID("$FreeBSD$");
 	MAPPING(CLOUDABI_RIGHT_MEM_MAP_EXEC, CAP_MMAP_X)		\
 	MAPPING(CLOUDABI_RIGHT_POLL_FD_READWRITE, CAP_EVENT)		\
 	MAPPING(CLOUDABI_RIGHT_POLL_MODIFY, CAP_KQUEUE_CHANGE)		\
-	MAPPING(CLOUDABI_RIGHT_POLL_PROC_TERMINATE, CAP_PDWAIT)		\
+	MAPPING(CLOUDABI_RIGHT_POLL_PROC_TERMINATE, CAP_EVENT)		\
 	MAPPING(CLOUDABI_RIGHT_POLL_WAIT, CAP_KQUEUE_EVENT)		\
 	MAPPING(CLOUDABI_RIGHT_PROC_EXEC, CAP_FEXECVE)			\
 	MAPPING(CLOUDABI_RIGHT_SOCK_ACCEPT, CAP_ACCEPT)			\
@@ -380,7 +380,8 @@ cloudabi_remove_conflicting_rights(cloud
 		*inheriting = 0;
 		break;
 	case CLOUDABI_FILETYPE_PROCESS:
-		*base &= ~CLOUDABI_RIGHT_FILE_ADVISE;
+		*base &= ~(CLOUDABI_RIGHT_FILE_ADVISE |
+		    CLOUDABI_RIGHT_POLL_FD_READWRITE);
 		*inheriting = 0;
 		break;
 	case CLOUDABI_FILETYPE_REGULAR_FILE:

Modified: head/sys/compat/cloudabi/cloudabi_proc.c
==============================================================================
--- head/sys/compat/cloudabi/cloudabi_proc.c	Wed Aug 12 10:34:05 2015	(r286660)
+++ head/sys/compat/cloudabi/cloudabi_proc.c	Wed Aug 12 11:07:03 2015	(r286661)
@@ -74,7 +74,7 @@ cloudabi_sys_proc_fork(struct thread *td
 	struct proc *p2;
 	int error, fd;
 
-	cap_rights_init(&fcaps.fc_rights, CAP_FSTAT, CAP_PDWAIT);
+	cap_rights_init(&fcaps.fc_rights, CAP_FSTAT, CAP_EVENT);
 	error = fork1(td, RFFDG | RFPROC | RFPROCDESC, 0, &p2, &fd, 0, &fcaps);
 	if (error != 0)
 		return (error);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201508121107.t7CB73Ra084639>