Deleted Added
full compact
cloudabi_file.c (286359) cloudabi_file.c (286633)
1/*-
2 * Copyright (c) 2015 Nuxi, https://nuxi.nl/
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.

--- 10 unchanged lines hidden (view full) ---

19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 */
25
26#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2015 Nuxi, https://nuxi.nl/
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.

--- 10 unchanged lines hidden (view full) ---

19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 */
25
26#include <sys/cdefs.h>
27__FBSDID("$FreeBSD: head/sys/compat/cloudabi/cloudabi_file.c 286359 2015-08-06 06:47:28Z ed $");
27__FBSDID("$FreeBSD: head/sys/compat/cloudabi/cloudabi_file.c 286633 2015-08-11 14:08:46Z ed $");
28
29#include <sys/param.h>
30#include <sys/capsicum.h>
31#include <sys/dirent.h>
32#include <sys/fcntl.h>
33#include <sys/kernel.h>
34#include <sys/malloc.h>
35#include <sys/namei.h>

--- 183 unchanged lines hidden (view full) ---

219 cap_rights_set(&rights, CAP_LOOKUP);
220
221 /* Convert rights to corresponding access mode. */
222 read = (fds.fs_rights_base & (CLOUDABI_RIGHT_FD_READ |
223 CLOUDABI_RIGHT_FILE_READDIR | CLOUDABI_RIGHT_MEM_MAP_EXEC)) != 0;
224 write = (fds.fs_rights_base & (CLOUDABI_RIGHT_FD_DATASYNC |
225 CLOUDABI_RIGHT_FD_WRITE | CLOUDABI_RIGHT_FILE_ALLOCATE |
226 CLOUDABI_RIGHT_FILE_STAT_FPUT_SIZE)) != 0;
28
29#include <sys/param.h>
30#include <sys/capsicum.h>
31#include <sys/dirent.h>
32#include <sys/fcntl.h>
33#include <sys/kernel.h>
34#include <sys/malloc.h>
35#include <sys/namei.h>

--- 183 unchanged lines hidden (view full) ---

219 cap_rights_set(&rights, CAP_LOOKUP);
220
221 /* Convert rights to corresponding access mode. */
222 read = (fds.fs_rights_base & (CLOUDABI_RIGHT_FD_READ |
223 CLOUDABI_RIGHT_FILE_READDIR | CLOUDABI_RIGHT_MEM_MAP_EXEC)) != 0;
224 write = (fds.fs_rights_base & (CLOUDABI_RIGHT_FD_DATASYNC |
225 CLOUDABI_RIGHT_FD_WRITE | CLOUDABI_RIGHT_FILE_ALLOCATE |
226 CLOUDABI_RIGHT_FILE_STAT_FPUT_SIZE)) != 0;
227 fflags = read ? write ? FREAD | FWRITE : FREAD : FWRITE;
227 fflags = write ? read ? FREAD | FWRITE : FWRITE : FREAD;
228
229 /* Convert open flags. */
230 if ((uap->oflags & CLOUDABI_O_CREAT) != 0) {
231 fflags |= O_CREAT;
232 cap_rights_set(&rights, CAP_CREATE);
233 }
234 if ((uap->oflags & CLOUDABI_O_DIRECTORY) != 0)
235 fflags |= O_DIRECTORY;

--- 525 unchanged lines hidden ---
228
229 /* Convert open flags. */
230 if ((uap->oflags & CLOUDABI_O_CREAT) != 0) {
231 fflags |= O_CREAT;
232 cap_rights_set(&rights, CAP_CREATE);
233 }
234 if ((uap->oflags & CLOUDABI_O_DIRECTORY) != 0)
235 fflags |= O_DIRECTORY;

--- 525 unchanged lines hidden ---