From owner-p4-projects@FreeBSD.ORG Mon Jun 29 15:26:56 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 89E9810656A5; Mon, 29 Jun 2009 15:26:56 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 458B61065695 for ; Mon, 29 Jun 2009 15:26:56 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 33D378FC1B for ; Mon, 29 Jun 2009 15:26:56 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5TFQtkU036226 for ; Mon, 29 Jun 2009 15:26:55 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5TFQtov036224 for perforce@freebsd.org; Mon, 29 Jun 2009 15:26:55 GMT (envelope-from jona@FreeBSD.org) Date: Mon, 29 Jun 2009 15:26:55 GMT Message-Id: <200906291526.n5TFQtov036224@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 165406 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Jun 2009 15:26:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=165406 Change 165406 by jona@jona-trustedbsd-belle-vmware on 2009/06/29 15:26:14 Added ua_set(), fixed flag handling in ua_open() Affected files ... .. //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.c#6 edit .. //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.h#6 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.c#6 (text+ko) ==== @@ -150,6 +150,10 @@ +void ua_set(int fd) { angel = fd; } + + + int ua_open(const char *path, int flags) { if(angel < 0) angel = ua_find(); @@ -157,9 +161,9 @@ cap_rights_t rights = CAP_SEEK | CAP_FSYNC; - if((flags & O_RDONLY) || (flags & O_RDWR)) rights |= CAP_READ; - if((flags & O_WRONLY) || (flags & O_RDWR)) - rights |= CAP_WRITE | CAP_FTRUNCATE; + if(flags & O_WRONLY) rights |= CAP_WRITE | CAP_FTRUNCATE; + else if(flags & O_RDWR) rights |= CAP_READ | CAP_WRITE | CAP_FTRUNCATE; + else rights |= CAP_READ; if(flags & O_EXEC) rights |= CAP_FEXECVE; ==== //depot/projects/trustedbsd/capabilities/src/lib/libuserangel/libuserangel.h#6 (text+ko) ==== @@ -48,12 +48,15 @@ /** The last angel/sandbox protocol error */ const char* ua_protocol_error(void); +/** Find the user angel (at $HOME/.user-angel or the like) */ +int ua_find(void); + +/** Set the user angel */ +void ua_set(int fd); + /** Open a file via the User Angel */ int ua_open(const char *path, int flags); -/** Find the user angel (at $HOME/.user-angel or the like) */ -int ua_find(void); - /* Low-level API */