1d6f122f4SPawel Jakub Dawidek /*- 2*d915a14eSPedro F. Giffuni * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3*d915a14eSPedro F. Giffuni * 4d6f122f4SPawel Jakub Dawidek * Copyright (c) 2012 The FreeBSD Foundation 5d6f122f4SPawel Jakub Dawidek * All rights reserved. 6d6f122f4SPawel Jakub Dawidek * 7d6f122f4SPawel Jakub Dawidek * This software was developed by Pawel Jakub Dawidek under sponsorship from 8d6f122f4SPawel Jakub Dawidek * the FreeBSD Foundation. 9d6f122f4SPawel Jakub Dawidek * 10d6f122f4SPawel Jakub Dawidek * Redistribution and use in source and binary forms, with or without 11d6f122f4SPawel Jakub Dawidek * modification, are permitted provided that the following conditions 12d6f122f4SPawel Jakub Dawidek * are met: 13d6f122f4SPawel Jakub Dawidek * 1. Redistributions of source code must retain the above copyright 14d6f122f4SPawel Jakub Dawidek * notice, this list of conditions and the following disclaimer. 15d6f122f4SPawel Jakub Dawidek * 2. Redistributions in binary form must reproduce the above copyright 16d6f122f4SPawel Jakub Dawidek * notice, this list of conditions and the following disclaimer in the 17d6f122f4SPawel Jakub Dawidek * documentation and/or other materials provided with the distribution. 18d6f122f4SPawel Jakub Dawidek * 19d6f122f4SPawel Jakub Dawidek * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND 20d6f122f4SPawel Jakub Dawidek * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21d6f122f4SPawel Jakub Dawidek * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22d6f122f4SPawel Jakub Dawidek * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE 23d6f122f4SPawel Jakub Dawidek * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24d6f122f4SPawel Jakub Dawidek * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25d6f122f4SPawel Jakub Dawidek * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26d6f122f4SPawel Jakub Dawidek * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27d6f122f4SPawel Jakub Dawidek * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28d6f122f4SPawel Jakub Dawidek * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29d6f122f4SPawel Jakub Dawidek * SUCH DAMAGE. 30d6f122f4SPawel Jakub Dawidek */ 31d6f122f4SPawel Jakub Dawidek 32d6f122f4SPawel Jakub Dawidek #include <sys/cdefs.h> 33d6f122f4SPawel Jakub Dawidek __FBSDID("$FreeBSD$"); 34d6f122f4SPawel Jakub Dawidek 35b881b8beSRobert Watson #include <sys/capsicum.h> 36d6f122f4SPawel Jakub Dawidek 37d6f122f4SPawel Jakub Dawidek #include <assert.h> 38d6f122f4SPawel Jakub Dawidek #include <errno.h> 39d6f122f4SPawel Jakub Dawidek #include <stdbool.h> 40d6f122f4SPawel Jakub Dawidek 41d6f122f4SPawel Jakub Dawidek bool 42d6f122f4SPawel Jakub Dawidek cap_sandboxed(void) 43d6f122f4SPawel Jakub Dawidek { 44d6f122f4SPawel Jakub Dawidek u_int mode; 45d6f122f4SPawel Jakub Dawidek 46d6f122f4SPawel Jakub Dawidek if (cap_getmode(&mode) != 0) { 47d6f122f4SPawel Jakub Dawidek assert(errno == ENOSYS); 48d6f122f4SPawel Jakub Dawidek return (false); 49d6f122f4SPawel Jakub Dawidek } 50d6f122f4SPawel Jakub Dawidek assert(mode == 0 || mode == 1); 51d6f122f4SPawel Jakub Dawidek return (mode == 1); 52d6f122f4SPawel Jakub Dawidek } 53