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