1d8a7b7a3SRobert Watson /*- 218717f69SRobert Watson * Copyright (c) 1999-2002, 2007 Robert N. M. Watson 3ba53d9c9SRobert Watson * Copyright (c) 2001-2005 McAfee, Inc. 430d239bcSRobert Watson * Copyright (c) 2005-2006 SPARTA, Inc. 56356dba0SRobert Watson * Copyright (c) 2008 Apple Inc. 6d8a7b7a3SRobert Watson * All rights reserved. 7d8a7b7a3SRobert Watson * 8d8a7b7a3SRobert Watson * This software was developed by Robert Watson for the TrustedBSD Project. 9d8a7b7a3SRobert Watson * 10ba53d9c9SRobert Watson * This software was developed for the FreeBSD Project in part by McAfee 11ba53d9c9SRobert Watson * Research, the Security Research Division of McAfee, Inc. under 12ba53d9c9SRobert Watson * DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA 13ba53d9c9SRobert Watson * CHATS research program. 14d8a7b7a3SRobert Watson * 156758f88eSRobert Watson * This software was enhanced by SPARTA ISSO under SPAWAR contract 166758f88eSRobert Watson * N66001-04-C-6019 ("SEFOS"). 176758f88eSRobert Watson * 18d8a7b7a3SRobert Watson * Redistribution and use in source and binary forms, with or without 19d8a7b7a3SRobert Watson * modification, are permitted provided that the following conditions 20d8a7b7a3SRobert Watson * are met: 21d8a7b7a3SRobert Watson * 1. Redistributions of source code must retain the above copyright 22d8a7b7a3SRobert Watson * notice, this list of conditions and the following disclaimer. 23d8a7b7a3SRobert Watson * 2. Redistributions in binary form must reproduce the above copyright 24d8a7b7a3SRobert Watson * notice, this list of conditions and the following disclaimer in the 25d8a7b7a3SRobert Watson * documentation and/or other materials provided with the distribution. 26d8a7b7a3SRobert Watson * 27d8a7b7a3SRobert Watson * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 28d8a7b7a3SRobert Watson * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 29d8a7b7a3SRobert Watson * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 30d8a7b7a3SRobert Watson * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 31d8a7b7a3SRobert Watson * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 32d8a7b7a3SRobert Watson * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 33d8a7b7a3SRobert Watson * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 34d8a7b7a3SRobert Watson * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 35d8a7b7a3SRobert Watson * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 36d8a7b7a3SRobert Watson * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 37d8a7b7a3SRobert Watson * SUCH DAMAGE. 38d8a7b7a3SRobert Watson * 39d8a7b7a3SRobert Watson * $FreeBSD$ 40d8a7b7a3SRobert Watson */ 41d8a7b7a3SRobert Watson 42d8a7b7a3SRobert Watson /* 43d8a7b7a3SRobert Watson * Developed by the TrustedBSD Project. 441c3f91cdSRobert Watson * 451c3f91cdSRobert Watson * Stub module that implements a NOOP for most (if not all) MAC Framework 461c3f91cdSRobert Watson * policy entry points. 47d8a7b7a3SRobert Watson */ 48d8a7b7a3SRobert Watson 49d8a7b7a3SRobert Watson #include <sys/types.h> 50d8a7b7a3SRobert Watson #include <sys/param.h> 51d8a7b7a3SRobert Watson #include <sys/acl.h> 52d8a7b7a3SRobert Watson #include <sys/conf.h> 53763bbd2fSRobert Watson #include <sys/extattr.h> 54d8a7b7a3SRobert Watson #include <sys/kernel.h> 556aeb05d7STom Rhodes #include <sys/ksem.h> 56d8a7b7a3SRobert Watson #include <sys/mount.h> 57d8a7b7a3SRobert Watson #include <sys/proc.h> 58d8a7b7a3SRobert Watson #include <sys/systm.h> 59d8a7b7a3SRobert Watson #include <sys/sysproto.h> 60d8a7b7a3SRobert Watson #include <sys/sysent.h> 61d8a7b7a3SRobert Watson #include <sys/vnode.h> 62d8a7b7a3SRobert Watson #include <sys/file.h> 63d8a7b7a3SRobert Watson #include <sys/socket.h> 64d8a7b7a3SRobert Watson #include <sys/socketvar.h> 65d8a7b7a3SRobert Watson #include <sys/pipe.h> 6636422989SPoul-Henning Kamp #include <sys/sx.h> 67d8a7b7a3SRobert Watson #include <sys/sysctl.h> 68ba53d9c9SRobert Watson #include <sys/msg.h> 69ba53d9c9SRobert Watson #include <sys/sem.h> 70ba53d9c9SRobert Watson #include <sys/shm.h> 71d8a7b7a3SRobert Watson 72d8a7b7a3SRobert Watson #include <fs/devfs/devfs.h> 73d8a7b7a3SRobert Watson 74d8a7b7a3SRobert Watson #include <net/bpfdesc.h> 75d8a7b7a3SRobert Watson #include <net/if.h> 76d8a7b7a3SRobert Watson #include <net/if_types.h> 77d8a7b7a3SRobert Watson #include <net/if_var.h> 78d8a7b7a3SRobert Watson 79d8a7b7a3SRobert Watson #include <netinet/in.h> 80a557af22SRobert Watson #include <netinet/in_pcb.h> 81d8a7b7a3SRobert Watson #include <netinet/ip_var.h> 82d8a7b7a3SRobert Watson 83d8a7b7a3SRobert Watson #include <vm/vm.h> 84d8a7b7a3SRobert Watson 850efd6615SRobert Watson #include <security/mac/mac_policy.h> 86d8a7b7a3SRobert Watson 87d8a7b7a3SRobert Watson SYSCTL_DECL(_security_mac); 88d8a7b7a3SRobert Watson 891c3f91cdSRobert Watson SYSCTL_NODE(_security_mac, OID_AUTO, stub, CTLFLAG_RW, 0, 901c3f91cdSRobert Watson "TrustedBSD mac_stub policy controls"); 91d8a7b7a3SRobert Watson 921c3f91cdSRobert Watson static int stub_enabled = 1; 931c3f91cdSRobert Watson SYSCTL_INT(_security_mac_stub, OID_AUTO, enabled, CTLFLAG_RW, 941c3f91cdSRobert Watson &stub_enabled, 0, "Enforce mac_stub policy"); 95d8a7b7a3SRobert Watson 96d8a7b7a3SRobert Watson /* 97d8a7b7a3SRobert Watson * Policy module operations. 98d8a7b7a3SRobert Watson */ 99d8a7b7a3SRobert Watson static void 1001c3f91cdSRobert Watson stub_destroy(struct mac_policy_conf *conf) 101d8a7b7a3SRobert Watson { 102d8a7b7a3SRobert Watson 103d8a7b7a3SRobert Watson } 104d8a7b7a3SRobert Watson 105d8a7b7a3SRobert Watson static void 1061c3f91cdSRobert Watson stub_init(struct mac_policy_conf *conf) 107d8a7b7a3SRobert Watson { 108d8a7b7a3SRobert Watson 109d8a7b7a3SRobert Watson } 110d8a7b7a3SRobert Watson 1118a97ecf6SRobert Watson static int 1121c3f91cdSRobert Watson stub_syscall(struct thread *td, int call, void *arg) 1138a97ecf6SRobert Watson { 1148a97ecf6SRobert Watson 1158a97ecf6SRobert Watson return (0); 1168a97ecf6SRobert Watson } 1178a97ecf6SRobert Watson 118d8a7b7a3SRobert Watson /* 119d8a7b7a3SRobert Watson * Label operations. 120d8a7b7a3SRobert Watson */ 121d8a7b7a3SRobert Watson static void 1221c3f91cdSRobert Watson stub_init_label(struct label *label) 123d8a7b7a3SRobert Watson { 124d8a7b7a3SRobert Watson 125d8a7b7a3SRobert Watson } 126d8a7b7a3SRobert Watson 127d8a7b7a3SRobert Watson static int 1281c3f91cdSRobert Watson stub_init_label_waitcheck(struct label *label, int flag) 129d8a7b7a3SRobert Watson { 130d8a7b7a3SRobert Watson 131d8a7b7a3SRobert Watson return (0); 132d8a7b7a3SRobert Watson } 133d8a7b7a3SRobert Watson 134d8a7b7a3SRobert Watson static void 1351c3f91cdSRobert Watson stub_destroy_label(struct label *label) 136d8a7b7a3SRobert Watson { 137d8a7b7a3SRobert Watson 138d8a7b7a3SRobert Watson } 139d8a7b7a3SRobert Watson 1400196273bSRobert Watson static void 1410196273bSRobert Watson stub_copy_label(struct label *src, struct label *dest) 1420196273bSRobert Watson { 1430196273bSRobert Watson 1440196273bSRobert Watson } 1450196273bSRobert Watson 146d8a7b7a3SRobert Watson static int 1471c3f91cdSRobert Watson stub_externalize_label(struct label *label, char *element_name, 148f51e5803SRobert Watson struct sbuf *sb, int *claimed) 149d8a7b7a3SRobert Watson { 150d8a7b7a3SRobert Watson 151d8a7b7a3SRobert Watson return (0); 152d8a7b7a3SRobert Watson } 153d8a7b7a3SRobert Watson 154d8a7b7a3SRobert Watson static int 1551c3f91cdSRobert Watson stub_internalize_label(struct label *label, char *element_name, 15624e8d0d0SRobert Watson char *element_data, int *claimed) 157d8a7b7a3SRobert Watson { 158d8a7b7a3SRobert Watson 159d8a7b7a3SRobert Watson return (0); 160d8a7b7a3SRobert Watson } 161d8a7b7a3SRobert Watson 162d8a7b7a3SRobert Watson /* 163eb320b0eSRobert Watson * Object-specific entry point imeplementations are sorted alphabetically by 164eb320b0eSRobert Watson * object type name and then by operation. 165d8a7b7a3SRobert Watson */ 166763bbd2fSRobert Watson static int 167eb320b0eSRobert Watson stub_bpfdesc_check_receive(struct bpf_d *d, struct label *dlabel, 168eb320b0eSRobert Watson struct ifnet *ifp, struct label *ifplabel) 169763bbd2fSRobert Watson { 170763bbd2fSRobert Watson 171763bbd2fSRobert Watson return (0); 172763bbd2fSRobert Watson } 173763bbd2fSRobert Watson 174763bbd2fSRobert Watson static void 175eb320b0eSRobert Watson stub_bpfdesc_create(struct ucred *cred, struct bpf_d *d, 176eb320b0eSRobert Watson struct label *dlabel) 177eb320b0eSRobert Watson { 178eb320b0eSRobert Watson 179eb320b0eSRobert Watson } 180eb320b0eSRobert Watson 181eb320b0eSRobert Watson static void 182eb320b0eSRobert Watson stub_bpfdesc_create_mbuf(struct bpf_d *d, struct label *dlabel, 183eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 184eb320b0eSRobert Watson { 185eb320b0eSRobert Watson 186eb320b0eSRobert Watson } 187eb320b0eSRobert Watson 188eb320b0eSRobert Watson static int 189eb320b0eSRobert Watson stub_cred_check_relabel(struct ucred *cred, struct label *newlabel) 190eb320b0eSRobert Watson { 191eb320b0eSRobert Watson 192eb320b0eSRobert Watson return (0); 193eb320b0eSRobert Watson } 194eb320b0eSRobert Watson 195eb320b0eSRobert Watson static int 196eb320b0eSRobert Watson stub_cred_check_visible(struct ucred *cr1, struct ucred *cr2) 197eb320b0eSRobert Watson { 198eb320b0eSRobert Watson 199eb320b0eSRobert Watson return (0); 200eb320b0eSRobert Watson } 201eb320b0eSRobert Watson 202eb320b0eSRobert Watson static void 203eb320b0eSRobert Watson stub_cred_relabel(struct ucred *cred, struct label *newlabel) 204763bbd2fSRobert Watson { 205763bbd2fSRobert Watson 206763bbd2fSRobert Watson } 207763bbd2fSRobert Watson 208763bbd2fSRobert Watson static void 20930d239bcSRobert Watson stub_devfs_create_device(struct ucred *cred, struct mount *mp, 21078007886SRobert Watson struct cdev *dev, struct devfs_dirent *de, struct label *delabel) 211eea8ea31SRobert Watson { 212eea8ea31SRobert Watson 213eea8ea31SRobert Watson } 214eea8ea31SRobert Watson 215eea8ea31SRobert Watson static void 21630d239bcSRobert Watson stub_devfs_create_directory(struct mount *mp, char *dirname, 21778007886SRobert Watson int dirnamelen, struct devfs_dirent *de, struct label *delabel) 218990b4b2dSRobert Watson { 219990b4b2dSRobert Watson 220990b4b2dSRobert Watson } 221990b4b2dSRobert Watson 222990b4b2dSRobert Watson static void 22330d239bcSRobert Watson stub_devfs_create_symlink(struct ucred *cred, struct mount *mp, 224990b4b2dSRobert Watson struct devfs_dirent *dd, struct label *ddlabel, struct devfs_dirent *de, 225990b4b2dSRobert Watson struct label *delabel) 226d8a7b7a3SRobert Watson { 227d8a7b7a3SRobert Watson 228d8a7b7a3SRobert Watson } 229d8a7b7a3SRobert Watson 230d8a7b7a3SRobert Watson static void 23130d239bcSRobert Watson stub_devfs_update(struct mount *mp, struct devfs_dirent *de, 23278007886SRobert Watson struct label *delabel, struct vnode *vp, struct label *vplabel) 233d8a7b7a3SRobert Watson { 234d8a7b7a3SRobert Watson 235d8a7b7a3SRobert Watson } 236d8a7b7a3SRobert Watson 237d8a7b7a3SRobert Watson static void 238eb320b0eSRobert Watson stub_devfs_vnode_associate(struct mount *mp, struct label *mplabel, 239eb320b0eSRobert Watson struct devfs_dirent *de, struct label *delabel, struct vnode *vp, 240eb320b0eSRobert Watson struct label *vplabel) 241d8a7b7a3SRobert Watson { 242d8a7b7a3SRobert Watson 243d8a7b7a3SRobert Watson } 244d8a7b7a3SRobert Watson 245d8a7b7a3SRobert Watson static int 24630d239bcSRobert Watson stub_ifnet_check_relabel(struct ucred *cred, struct ifnet *ifp, 24778007886SRobert Watson struct label *ifplabel, struct label *newlabel) 248d8a7b7a3SRobert Watson { 249d8a7b7a3SRobert Watson 250d8a7b7a3SRobert Watson return (0); 251d8a7b7a3SRobert Watson } 252d8a7b7a3SRobert Watson 253d8a7b7a3SRobert Watson static int 25430d239bcSRobert Watson stub_ifnet_check_transmit(struct ifnet *ifp, struct label *ifplabel, 25578007886SRobert Watson struct mbuf *m, struct label *mlabel) 256d8a7b7a3SRobert Watson { 257d8a7b7a3SRobert Watson 258d8a7b7a3SRobert Watson return (0); 259d8a7b7a3SRobert Watson } 260d8a7b7a3SRobert Watson 261eb320b0eSRobert Watson static void 262eb320b0eSRobert Watson stub_ifnet_create(struct ifnet *ifp, struct label *ifplabel) 263eb320b0eSRobert Watson { 264eb320b0eSRobert Watson 265eb320b0eSRobert Watson } 266eb320b0eSRobert Watson 267eb320b0eSRobert Watson static void 268eb320b0eSRobert Watson stub_ifnet_create_mbuf(struct ifnet *ifp, struct label *ifplabel, 269eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 270eb320b0eSRobert Watson { 271eb320b0eSRobert Watson 272eb320b0eSRobert Watson } 273eb320b0eSRobert Watson 274eb320b0eSRobert Watson static void 275eb320b0eSRobert Watson stub_ifnet_relabel(struct ucred *cred, struct ifnet *ifp, 276eb320b0eSRobert Watson struct label *ifplabel, struct label *newlabel) 277eb320b0eSRobert Watson { 278eb320b0eSRobert Watson 279eb320b0eSRobert Watson } 280eb320b0eSRobert Watson 281d8a7b7a3SRobert Watson static int 28230d239bcSRobert Watson stub_inpcb_check_deliver(struct inpcb *inp, struct label *inplabel, 283a557af22SRobert Watson struct mbuf *m, struct label *mlabel) 284a557af22SRobert Watson { 285a557af22SRobert Watson 286a557af22SRobert Watson return (0); 287a557af22SRobert Watson } 288a557af22SRobert Watson 289eb320b0eSRobert Watson static void 290eb320b0eSRobert Watson stub_inpcb_create(struct socket *so, struct label *solabel, 291eb320b0eSRobert Watson struct inpcb *inp, struct label *inplabel) 292ba53d9c9SRobert Watson { 293ba53d9c9SRobert Watson 294eb320b0eSRobert Watson } 295eb320b0eSRobert Watson 296eb320b0eSRobert Watson static void 297eb320b0eSRobert Watson stub_inpcb_create_mbuf(struct inpcb *inp, struct label *inplabel, 298eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 299eb320b0eSRobert Watson { 300eb320b0eSRobert Watson 301eb320b0eSRobert Watson } 302eb320b0eSRobert Watson 303eb320b0eSRobert Watson static void 304eb320b0eSRobert Watson stub_inpcb_sosetlabel(struct socket *so, struct label *solabel, 305eb320b0eSRobert Watson struct inpcb *inp, struct label *inplabel) 306eb320b0eSRobert Watson { 307eb320b0eSRobert Watson 308eb320b0eSRobert Watson } 309eb320b0eSRobert Watson 310eb320b0eSRobert Watson static void 31137f44cb4SRobert Watson stub_ipq_create(struct mbuf *m, struct label *mlabel, struct ipq *q, 31237f44cb4SRobert Watson struct label *qlabel) 313eb320b0eSRobert Watson { 314eb320b0eSRobert Watson 315ba53d9c9SRobert Watson } 316ba53d9c9SRobert Watson 317ba53d9c9SRobert Watson static int 31837f44cb4SRobert Watson stub_ipq_match(struct mbuf *m, struct label *mlabel, struct ipq *q, 31937f44cb4SRobert Watson struct label *qlabel) 320ba53d9c9SRobert Watson { 321ba53d9c9SRobert Watson 322eb320b0eSRobert Watson return (1); 323ba53d9c9SRobert Watson } 324ba53d9c9SRobert Watson 325eb320b0eSRobert Watson static void 32637f44cb4SRobert Watson stub_ipq_reassemble(struct ipq *q, struct label *qlabel, struct mbuf *m, 32737f44cb4SRobert Watson struct label *mlabel) 328ba53d9c9SRobert Watson { 329ba53d9c9SRobert Watson 330ba53d9c9SRobert Watson } 331ba53d9c9SRobert Watson 332eb320b0eSRobert Watson static void 33337f44cb4SRobert Watson stub_ipq_update(struct mbuf *m, struct label *mlabel, struct ipq *q, 33437f44cb4SRobert Watson struct label *qlabel) 335ba53d9c9SRobert Watson { 336ba53d9c9SRobert Watson 337ba53d9c9SRobert Watson } 338ba53d9c9SRobert Watson 339ba53d9c9SRobert Watson static int 34030d239bcSRobert Watson stub_kenv_check_dump(struct ucred *cred) 34109de2dc2SRobert Watson { 34209de2dc2SRobert Watson 34309de2dc2SRobert Watson return (0); 34409de2dc2SRobert Watson } 34509de2dc2SRobert Watson 34609de2dc2SRobert Watson static int 34730d239bcSRobert Watson stub_kenv_check_get(struct ucred *cred, char *name) 34809de2dc2SRobert Watson { 34909de2dc2SRobert Watson 35009de2dc2SRobert Watson return (0); 35109de2dc2SRobert Watson } 35209de2dc2SRobert Watson 35309de2dc2SRobert Watson static int 35430d239bcSRobert Watson stub_kenv_check_set(struct ucred *cred, char *name, char *value) 35509de2dc2SRobert Watson { 35609de2dc2SRobert Watson 35709de2dc2SRobert Watson return (0); 35809de2dc2SRobert Watson } 35909de2dc2SRobert Watson 36009de2dc2SRobert Watson static int 36130d239bcSRobert Watson stub_kenv_check_unset(struct ucred *cred, char *name) 36209de2dc2SRobert Watson { 36309de2dc2SRobert Watson 36409de2dc2SRobert Watson return (0); 36509de2dc2SRobert Watson } 36609de2dc2SRobert Watson 36709de2dc2SRobert Watson static int 36830d239bcSRobert Watson stub_kld_check_load(struct ucred *cred, struct vnode *vp, 36978007886SRobert Watson struct label *vplabel) 37009de2dc2SRobert Watson { 37109de2dc2SRobert Watson 37209de2dc2SRobert Watson return (0); 37309de2dc2SRobert Watson } 37409de2dc2SRobert Watson 37509de2dc2SRobert Watson static int 37630d239bcSRobert Watson stub_kld_check_stat(struct ucred *cred) 37709de2dc2SRobert Watson { 37809de2dc2SRobert Watson 37909de2dc2SRobert Watson return (0); 38009de2dc2SRobert Watson } 38109de2dc2SRobert Watson 38209de2dc2SRobert Watson static int 38330d239bcSRobert Watson stub_mount_check_stat(struct ucred *cred, struct mount *mp, 38478007886SRobert Watson struct label *mplabel) 385d8a7b7a3SRobert Watson { 386d8a7b7a3SRobert Watson 387d8a7b7a3SRobert Watson return (0); 388d8a7b7a3SRobert Watson } 389d8a7b7a3SRobert Watson 390eb320b0eSRobert Watson static void 391eb320b0eSRobert Watson stub_mount_create(struct ucred *cred, struct mount *mp, 392eb320b0eSRobert Watson struct label *mplabel) 393eb320b0eSRobert Watson { 394eb320b0eSRobert Watson 395eb320b0eSRobert Watson } 396eb320b0eSRobert Watson 397eb320b0eSRobert Watson static void 398eb320b0eSRobert Watson stub_netatalk_aarp_send(struct ifnet *ifp, struct label *iflpabel, 399eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 400eb320b0eSRobert Watson { 401eb320b0eSRobert Watson 402eb320b0eSRobert Watson } 403eb320b0eSRobert Watson 404eb320b0eSRobert Watson static void 405eb320b0eSRobert Watson stub_netinet_arp_send(struct ifnet *ifp, struct label *iflpabel, 406eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 407eb320b0eSRobert Watson { 408eb320b0eSRobert Watson 409eb320b0eSRobert Watson } 410eb320b0eSRobert Watson 411eb320b0eSRobert Watson static void 412eb320b0eSRobert Watson stub_netinet_firewall_reply(struct mbuf *mrecv, struct label *mrecvlabel, 413eb320b0eSRobert Watson struct mbuf *msend, struct label *msendlabel) 414eb320b0eSRobert Watson { 415eb320b0eSRobert Watson 416eb320b0eSRobert Watson } 417eb320b0eSRobert Watson 418eb320b0eSRobert Watson static void 419eb320b0eSRobert Watson stub_netinet_firewall_send(struct mbuf *m, struct label *mlabel) 420eb320b0eSRobert Watson { 421eb320b0eSRobert Watson 422eb320b0eSRobert Watson } 423eb320b0eSRobert Watson 424eb320b0eSRobert Watson static void 425eb320b0eSRobert Watson stub_netinet_fragment(struct mbuf *m, struct label *mlabel, struct mbuf *frag, 426eb320b0eSRobert Watson struct label *fraglabel) 427eb320b0eSRobert Watson { 428eb320b0eSRobert Watson 429eb320b0eSRobert Watson } 430eb320b0eSRobert Watson 431eb320b0eSRobert Watson static void 432eb320b0eSRobert Watson stub_netinet_icmp_reply(struct mbuf *mrecv, struct label *mrecvlabel, 433eb320b0eSRobert Watson struct mbuf *msend, struct label *msendlabel) 434eb320b0eSRobert Watson { 435eb320b0eSRobert Watson 436eb320b0eSRobert Watson } 437eb320b0eSRobert Watson 438eb320b0eSRobert Watson static void 439eb320b0eSRobert Watson stub_netinet_icmp_replyinplace(struct mbuf *m, struct label *mlabel) 440eb320b0eSRobert Watson { 441eb320b0eSRobert Watson 442eb320b0eSRobert Watson } 443eb320b0eSRobert Watson 444eb320b0eSRobert Watson static void 445eb320b0eSRobert Watson stub_netinet_igmp_send(struct ifnet *ifp, struct label *iflpabel, 446eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 447eb320b0eSRobert Watson { 448eb320b0eSRobert Watson 449eb320b0eSRobert Watson } 450eb320b0eSRobert Watson 451eb320b0eSRobert Watson static void 452eb320b0eSRobert Watson stub_netinet_tcp_reply(struct mbuf *m, struct label *mlabel) 453eb320b0eSRobert Watson { 454eb320b0eSRobert Watson 455eb320b0eSRobert Watson } 456eb320b0eSRobert Watson 457eb320b0eSRobert Watson static void 458eb320b0eSRobert Watson stub_netinet6_nd6_send(struct ifnet *ifp, struct label *iflpabel, 459eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 460eb320b0eSRobert Watson { 461eb320b0eSRobert Watson 462eb320b0eSRobert Watson } 463eb320b0eSRobert Watson 464d8a7b7a3SRobert Watson static int 46530d239bcSRobert Watson stub_pipe_check_ioctl(struct ucred *cred, struct pipepair *pp, 46678007886SRobert Watson struct label *pplabel, unsigned long cmd, void /* caddr_t */ *data) 467d8a7b7a3SRobert Watson { 468d8a7b7a3SRobert Watson 469d8a7b7a3SRobert Watson return (0); 470d8a7b7a3SRobert Watson } 471d8a7b7a3SRobert Watson 472d8a7b7a3SRobert Watson static int 47330d239bcSRobert Watson stub_pipe_check_poll(struct ucred *cred, struct pipepair *pp, 47478007886SRobert Watson struct label *pplabel) 475c024c3eeSRobert Watson { 476c024c3eeSRobert Watson 477c024c3eeSRobert Watson return (0); 478c024c3eeSRobert Watson } 479c024c3eeSRobert Watson 480c024c3eeSRobert Watson static int 48130d239bcSRobert Watson stub_pipe_check_read(struct ucred *cred, struct pipepair *pp, 48278007886SRobert Watson struct label *pplabel) 483d8a7b7a3SRobert Watson { 484d8a7b7a3SRobert Watson 485d8a7b7a3SRobert Watson return (0); 486d8a7b7a3SRobert Watson } 487d8a7b7a3SRobert Watson 488d8a7b7a3SRobert Watson static int 48930d239bcSRobert Watson stub_pipe_check_relabel(struct ucred *cred, struct pipepair *pp, 49078007886SRobert Watson struct label *pplabel, struct label *newlabel) 491d8a7b7a3SRobert Watson { 492d8a7b7a3SRobert Watson 493d8a7b7a3SRobert Watson return (0); 494d8a7b7a3SRobert Watson } 495d8a7b7a3SRobert Watson 496d8a7b7a3SRobert Watson static int 49730d239bcSRobert Watson stub_pipe_check_stat(struct ucred *cred, struct pipepair *pp, 49878007886SRobert Watson struct label *pplabel) 499c024c3eeSRobert Watson { 500c024c3eeSRobert Watson 501c024c3eeSRobert Watson return (0); 502c024c3eeSRobert Watson } 503c024c3eeSRobert Watson 504c024c3eeSRobert Watson static int 50530d239bcSRobert Watson stub_pipe_check_write(struct ucred *cred, struct pipepair *pp, 50678007886SRobert Watson struct label *pplabel) 507c024c3eeSRobert Watson { 508c024c3eeSRobert Watson 509c024c3eeSRobert Watson return (0); 510c024c3eeSRobert Watson } 511c024c3eeSRobert Watson 512eb320b0eSRobert Watson static void 513eb320b0eSRobert Watson stub_pipe_create(struct ucred *cred, struct pipepair *pp, 514eb320b0eSRobert Watson struct label *pplabel) 515eb320b0eSRobert Watson { 516eb320b0eSRobert Watson 517eb320b0eSRobert Watson } 518eb320b0eSRobert Watson 519eb320b0eSRobert Watson static void 520eb320b0eSRobert Watson stub_pipe_relabel(struct ucred *cred, struct pipepair *pp, 521eb320b0eSRobert Watson struct label *pplabel, struct label *newlabel) 522eb320b0eSRobert Watson { 523eb320b0eSRobert Watson 524eb320b0eSRobert Watson } 525eb320b0eSRobert Watson 526c024c3eeSRobert Watson static int 5276bc1e9cdSJohn Baldwin stub_posixsem_check_getvalue(struct ucred *active_cred, struct ucred *file_cred, 5286bc1e9cdSJohn Baldwin struct ksem *ks, struct label *kslabel) 52952648411SRobert Watson { 53052648411SRobert Watson 53152648411SRobert Watson return (0); 53252648411SRobert Watson } 53352648411SRobert Watson 53452648411SRobert Watson static int 53530d239bcSRobert Watson stub_posixsem_check_open(struct ucred *cred, struct ksem *ks, 536fe09513eSRobert Watson struct label *kslabel) 53752648411SRobert Watson { 53852648411SRobert Watson 53952648411SRobert Watson return (0); 54052648411SRobert Watson } 54152648411SRobert Watson 54252648411SRobert Watson static int 5436bc1e9cdSJohn Baldwin stub_posixsem_check_post(struct ucred *active_cred, struct ucred *file_cred, 5446bc1e9cdSJohn Baldwin struct ksem *ks, struct label *kslabel) 5456bc1e9cdSJohn Baldwin { 5466bc1e9cdSJohn Baldwin 5476bc1e9cdSJohn Baldwin return (0); 5486bc1e9cdSJohn Baldwin } 5496bc1e9cdSJohn Baldwin 5506bc1e9cdSJohn Baldwin static int 5516bc1e9cdSJohn Baldwin stub_posixsem_check_stat(struct ucred *active_cred, struct ucred *file_cred, 5526bc1e9cdSJohn Baldwin struct ksem *ks, struct label *kslabel) 55352648411SRobert Watson { 55452648411SRobert Watson 55552648411SRobert Watson return (0); 55652648411SRobert Watson } 55752648411SRobert Watson 55852648411SRobert Watson static int 55930d239bcSRobert Watson stub_posixsem_check_unlink(struct ucred *cred, struct ksem *ks, 560fe09513eSRobert Watson struct label *kslabel) 56152648411SRobert Watson { 56252648411SRobert Watson 56352648411SRobert Watson return (0); 56452648411SRobert Watson } 56552648411SRobert Watson 56652648411SRobert Watson static int 5676bc1e9cdSJohn Baldwin stub_posixsem_check_wait(struct ucred *active_cred, struct ucred *file_cred, 5686bc1e9cdSJohn Baldwin struct ksem *ks, struct label *kslabel) 56952648411SRobert Watson { 57052648411SRobert Watson 57152648411SRobert Watson return (0); 57252648411SRobert Watson } 57352648411SRobert Watson 574eb320b0eSRobert Watson static void 575eb320b0eSRobert Watson stub_posixsem_create(struct ucred *cred, struct ksem *ks, 576eb320b0eSRobert Watson struct label *kslabel) 577eb320b0eSRobert Watson { 578eb320b0eSRobert Watson 579eb320b0eSRobert Watson } 580eb320b0eSRobert Watson 581eb320b0eSRobert Watson static int 5828e38aeffSJohn Baldwin stub_posixshm_check_mmap(struct ucred *cred, struct shmfd *shmfd, 5838e38aeffSJohn Baldwin struct label *shmlabel, int prot, int flags) 5848e38aeffSJohn Baldwin { 5858e38aeffSJohn Baldwin 5868e38aeffSJohn Baldwin return (0); 5878e38aeffSJohn Baldwin } 5888e38aeffSJohn Baldwin 5898e38aeffSJohn Baldwin static int 5908e38aeffSJohn Baldwin stub_posixshm_check_open(struct ucred *cred, struct shmfd *shmfd, 5918e38aeffSJohn Baldwin struct label *shmlabel) 5928e38aeffSJohn Baldwin { 5938e38aeffSJohn Baldwin 5948e38aeffSJohn Baldwin return (0); 5958e38aeffSJohn Baldwin } 5968e38aeffSJohn Baldwin 5978e38aeffSJohn Baldwin static int 5988e38aeffSJohn Baldwin stub_posixshm_check_stat(struct ucred *active_cred, struct ucred *file_cred, 5998e38aeffSJohn Baldwin struct shmfd *shmfd, struct label *shmlabel) 6008e38aeffSJohn Baldwin { 6018e38aeffSJohn Baldwin 6028e38aeffSJohn Baldwin return (0); 6038e38aeffSJohn Baldwin } 6048e38aeffSJohn Baldwin 6058e38aeffSJohn Baldwin static int 6068e38aeffSJohn Baldwin stub_posixshm_check_truncate(struct ucred *active_cred, 6078e38aeffSJohn Baldwin struct ucred *file_cred, struct shmfd *shmfd, struct label *shmlabel) 6088e38aeffSJohn Baldwin { 6098e38aeffSJohn Baldwin 6108e38aeffSJohn Baldwin return (0); 6118e38aeffSJohn Baldwin } 6128e38aeffSJohn Baldwin 6138e38aeffSJohn Baldwin static int 6148e38aeffSJohn Baldwin stub_posixshm_check_unlink(struct ucred *cred, struct shmfd *shmfd, 6158e38aeffSJohn Baldwin struct label *shmlabel) 6168e38aeffSJohn Baldwin { 6178e38aeffSJohn Baldwin 6188e38aeffSJohn Baldwin return (0); 6198e38aeffSJohn Baldwin } 6208e38aeffSJohn Baldwin 6218e38aeffSJohn Baldwin static void 6228e38aeffSJohn Baldwin stub_posixshm_create(struct ucred *cred, struct shmfd *shmfd, 6238e38aeffSJohn Baldwin struct label *shmlabel) 6248e38aeffSJohn Baldwin { 6258e38aeffSJohn Baldwin 6268e38aeffSJohn Baldwin } 6278e38aeffSJohn Baldwin 6288e38aeffSJohn Baldwin static int 629eb320b0eSRobert Watson stub_priv_check(struct ucred *cred, int priv) 630eb320b0eSRobert Watson { 631eb320b0eSRobert Watson 632eb320b0eSRobert Watson return (0); 633eb320b0eSRobert Watson } 634eb320b0eSRobert Watson 635eb320b0eSRobert Watson static int 636eb320b0eSRobert Watson stub_priv_grant(struct ucred *cred, int priv) 637eb320b0eSRobert Watson { 638eb320b0eSRobert Watson 639eb320b0eSRobert Watson return (EPERM); 640eb320b0eSRobert Watson } 641eb320b0eSRobert Watson 642eb320b0eSRobert Watson static void 643eb320b0eSRobert Watson stub_proc_associate_nfsd(struct ucred *cred) 644eb320b0eSRobert Watson { 645eb320b0eSRobert Watson 646eb320b0eSRobert Watson } 647eb320b0eSRobert Watson 64852648411SRobert Watson static int 64930d239bcSRobert Watson stub_proc_check_debug(struct ucred *cred, struct proc *p) 650d8a7b7a3SRobert Watson { 651d8a7b7a3SRobert Watson 652d8a7b7a3SRobert Watson return (0); 653d8a7b7a3SRobert Watson } 654d8a7b7a3SRobert Watson 655d8a7b7a3SRobert Watson static int 65630d239bcSRobert Watson stub_proc_check_sched(struct ucred *cred, struct proc *p) 657d8a7b7a3SRobert Watson { 658d8a7b7a3SRobert Watson 659d8a7b7a3SRobert Watson return (0); 660d8a7b7a3SRobert Watson } 661d8a7b7a3SRobert Watson 662d8a7b7a3SRobert Watson static int 66330d239bcSRobert Watson stub_proc_check_setaudit(struct ucred *cred, struct auditinfo *ai) 66418717f69SRobert Watson { 66518717f69SRobert Watson 66618717f69SRobert Watson return (0); 66718717f69SRobert Watson } 66818717f69SRobert Watson 66918717f69SRobert Watson static int 67030d239bcSRobert Watson stub_proc_check_setaudit_addr(struct ucred *cred, struct auditinfo_addr *aia) 671f1e8bf6dSRobert Watson { 672f1e8bf6dSRobert Watson 673f1e8bf6dSRobert Watson return (0); 674f1e8bf6dSRobert Watson } 675f1e8bf6dSRobert Watson 676f1e8bf6dSRobert Watson static int 67730d239bcSRobert Watson stub_proc_check_setauid(struct ucred *cred, uid_t auid) 67818717f69SRobert Watson { 67918717f69SRobert Watson 68018717f69SRobert Watson return (0); 68118717f69SRobert Watson } 68218717f69SRobert Watson 68318717f69SRobert Watson static int 684eb320b0eSRobert Watson stub_proc_check_setegid(struct ucred *cred, gid_t egid) 685030a28b3SRobert Watson { 686030a28b3SRobert Watson 687030a28b3SRobert Watson return (0); 688030a28b3SRobert Watson } 689030a28b3SRobert Watson 690030a28b3SRobert Watson static int 69130d239bcSRobert Watson stub_proc_check_seteuid(struct ucred *cred, uid_t euid) 692030a28b3SRobert Watson { 693030a28b3SRobert Watson 694030a28b3SRobert Watson return (0); 695030a28b3SRobert Watson } 696030a28b3SRobert Watson 697030a28b3SRobert Watson static int 69830d239bcSRobert Watson stub_proc_check_setgid(struct ucred *cred, gid_t gid) 699030a28b3SRobert Watson { 700030a28b3SRobert Watson 701030a28b3SRobert Watson return (0); 702030a28b3SRobert Watson } 703030a28b3SRobert Watson 704030a28b3SRobert Watson static int 70530d239bcSRobert Watson stub_proc_check_setgroups(struct ucred *cred, int ngroups, 706030a28b3SRobert Watson gid_t *gidset) 707030a28b3SRobert Watson { 708030a28b3SRobert Watson 709030a28b3SRobert Watson return (0); 710030a28b3SRobert Watson } 711030a28b3SRobert Watson 712030a28b3SRobert Watson static int 713eb320b0eSRobert Watson stub_proc_check_setregid(struct ucred *cred, gid_t rgid, gid_t egid) 714030a28b3SRobert Watson { 715030a28b3SRobert Watson 716030a28b3SRobert Watson return (0); 717030a28b3SRobert Watson } 718030a28b3SRobert Watson 719030a28b3SRobert Watson static int 720eb320b0eSRobert Watson stub_proc_check_setresgid(struct ucred *cred, gid_t rgid, gid_t egid, 721eb320b0eSRobert Watson gid_t sgid) 722030a28b3SRobert Watson { 723030a28b3SRobert Watson 724030a28b3SRobert Watson return (0); 725030a28b3SRobert Watson } 726030a28b3SRobert Watson 727030a28b3SRobert Watson static int 72830d239bcSRobert Watson stub_proc_check_setresuid(struct ucred *cred, uid_t ruid, uid_t euid, 729030a28b3SRobert Watson uid_t suid) 730030a28b3SRobert Watson { 731030a28b3SRobert Watson 732030a28b3SRobert Watson return (0); 733030a28b3SRobert Watson } 734030a28b3SRobert Watson 735030a28b3SRobert Watson static int 736eb320b0eSRobert Watson stub_proc_check_setreuid(struct ucred *cred, uid_t ruid, uid_t euid) 737030a28b3SRobert Watson { 738030a28b3SRobert Watson 739030a28b3SRobert Watson return (0); 740030a28b3SRobert Watson } 741030a28b3SRobert Watson 742030a28b3SRobert Watson static int 743eb320b0eSRobert Watson stub_proc_check_setuid(struct ucred *cred, uid_t uid) 744eb320b0eSRobert Watson { 745eb320b0eSRobert Watson 746eb320b0eSRobert Watson return (0); 747eb320b0eSRobert Watson } 748eb320b0eSRobert Watson 749eb320b0eSRobert Watson static int 750eb320b0eSRobert Watson stub_proc_check_signal(struct ucred *cred, struct proc *p, int signum) 751eb320b0eSRobert Watson { 752eb320b0eSRobert Watson 753eb320b0eSRobert Watson return (0); 754eb320b0eSRobert Watson } 755eb320b0eSRobert Watson 756eb320b0eSRobert Watson static int 757eb320b0eSRobert Watson stub_proc_check_wait(struct ucred *cred, struct proc *p) 758eb320b0eSRobert Watson { 759eb320b0eSRobert Watson 760eb320b0eSRobert Watson return (0); 761eb320b0eSRobert Watson } 762eb320b0eSRobert Watson 763eb320b0eSRobert Watson static void 764eb320b0eSRobert Watson stub_proc_create_init(struct ucred *cred) 765eb320b0eSRobert Watson { 766eb320b0eSRobert Watson 767eb320b0eSRobert Watson } 768eb320b0eSRobert Watson 769eb320b0eSRobert Watson static void 770eb320b0eSRobert Watson stub_proc_create_swapper(struct ucred *cred) 771eb320b0eSRobert Watson { 772eb320b0eSRobert Watson 773eb320b0eSRobert Watson } 774eb320b0eSRobert Watson 775eb320b0eSRobert Watson static int 77630d239bcSRobert Watson stub_socket_check_accept(struct ucred *cred, struct socket *so, 77778007886SRobert Watson struct label *solabel) 7787f53207bSRobert Watson { 7797f53207bSRobert Watson 7807f53207bSRobert Watson return (0); 7817f53207bSRobert Watson } 7827f53207bSRobert Watson 7837f53207bSRobert Watson static int 78430d239bcSRobert Watson stub_socket_check_bind(struct ucred *cred, struct socket *so, 78578007886SRobert Watson struct label *solabel, struct sockaddr *sa) 786d8a7b7a3SRobert Watson { 787d8a7b7a3SRobert Watson 788d8a7b7a3SRobert Watson return (0); 789d8a7b7a3SRobert Watson } 790d8a7b7a3SRobert Watson 791d8a7b7a3SRobert Watson static int 79230d239bcSRobert Watson stub_socket_check_connect(struct ucred *cred, struct socket *so, 79378007886SRobert Watson struct label *solabel, struct sockaddr *sa) 794d8a7b7a3SRobert Watson { 795d8a7b7a3SRobert Watson 796d8a7b7a3SRobert Watson return (0); 797d8a7b7a3SRobert Watson } 798d8a7b7a3SRobert Watson 799d8a7b7a3SRobert Watson static int 80030d239bcSRobert Watson stub_socket_check_create(struct ucred *cred, int domain, int type, int proto) 8016758f88eSRobert Watson { 8026758f88eSRobert Watson 8036758f88eSRobert Watson return (0); 8046758f88eSRobert Watson } 8056758f88eSRobert Watson 8066758f88eSRobert Watson static int 80730d239bcSRobert Watson stub_socket_check_deliver(struct socket *so, struct label *solabel, 80878007886SRobert Watson struct mbuf *m, struct label *mlabel) 809d8a7b7a3SRobert Watson { 810d8a7b7a3SRobert Watson 811d8a7b7a3SRobert Watson return (0); 812d8a7b7a3SRobert Watson } 813d8a7b7a3SRobert Watson 814d8a7b7a3SRobert Watson static int 81530d239bcSRobert Watson stub_socket_check_listen(struct ucred *cred, struct socket *so, 81678007886SRobert Watson struct label *solabel) 817d8a7b7a3SRobert Watson { 818d8a7b7a3SRobert Watson 819d8a7b7a3SRobert Watson return (0); 820d8a7b7a3SRobert Watson } 821d8a7b7a3SRobert Watson 822d8a7b7a3SRobert Watson static int 82330d239bcSRobert Watson stub_socket_check_poll(struct ucred *cred, struct socket *so, 82478007886SRobert Watson struct label *solabel) 8257f53207bSRobert Watson { 8267f53207bSRobert Watson 8277f53207bSRobert Watson return (0); 8287f53207bSRobert Watson } 8297f53207bSRobert Watson 8307f53207bSRobert Watson static int 83130d239bcSRobert Watson stub_socket_check_receive(struct ucred *cred, struct socket *so, 83278007886SRobert Watson struct label *solabel) 8337f53207bSRobert Watson { 8347f53207bSRobert Watson 8357f53207bSRobert Watson return (0); 8367f53207bSRobert Watson } 8377f53207bSRobert Watson 8387f53207bSRobert Watson static int 83930d239bcSRobert Watson stub_socket_check_relabel(struct ucred *cred, struct socket *so, 84078007886SRobert Watson struct label *solabel, struct label *newlabel) 841d8a7b7a3SRobert Watson { 842d8a7b7a3SRobert Watson 843d8a7b7a3SRobert Watson return (0); 844d8a7b7a3SRobert Watson } 8457f53207bSRobert Watson static int 84630d239bcSRobert Watson stub_socket_check_send(struct ucred *cred, struct socket *so, 84778007886SRobert Watson struct label *solabel) 8487f53207bSRobert Watson { 8497f53207bSRobert Watson 8507f53207bSRobert Watson return (0); 8517f53207bSRobert Watson } 8527f53207bSRobert Watson 8537f53207bSRobert Watson static int 85430d239bcSRobert Watson stub_socket_check_stat(struct ucred *cred, struct socket *so, 85578007886SRobert Watson struct label *solabel) 8567f53207bSRobert Watson { 8577f53207bSRobert Watson 8587f53207bSRobert Watson return (0); 8597f53207bSRobert Watson } 860d8a7b7a3SRobert Watson 861d8a7b7a3SRobert Watson static int 86230d239bcSRobert Watson stub_socket_check_visible(struct ucred *cred, struct socket *so, 86378007886SRobert Watson struct label *solabel) 864d8a7b7a3SRobert Watson { 865d8a7b7a3SRobert Watson 866d8a7b7a3SRobert Watson return (0); 867d8a7b7a3SRobert Watson } 868d8a7b7a3SRobert Watson 869eb320b0eSRobert Watson static void 870eb320b0eSRobert Watson stub_socket_create(struct ucred *cred, struct socket *so, 871eb320b0eSRobert Watson struct label *solabel) 872eb320b0eSRobert Watson { 873eb320b0eSRobert Watson 874eb320b0eSRobert Watson } 875eb320b0eSRobert Watson 876eb320b0eSRobert Watson static void 877eb320b0eSRobert Watson stub_socket_create_mbuf(struct socket *so, struct label *solabel, 878eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 879eb320b0eSRobert Watson { 880eb320b0eSRobert Watson 881eb320b0eSRobert Watson } 882eb320b0eSRobert Watson 883eb320b0eSRobert Watson static void 884eb320b0eSRobert Watson stub_socket_newconn(struct socket *oldso, struct label *oldsolabel, 885eb320b0eSRobert Watson struct socket *newso, struct label *newsolabel) 886eb320b0eSRobert Watson { 887eb320b0eSRobert Watson 888eb320b0eSRobert Watson } 889eb320b0eSRobert Watson 890eb320b0eSRobert Watson static void 891eb320b0eSRobert Watson stub_socket_relabel(struct ucred *cred, struct socket *so, 892eb320b0eSRobert Watson struct label *solabel, struct label *newlabel) 893eb320b0eSRobert Watson { 894eb320b0eSRobert Watson 895eb320b0eSRobert Watson } 896eb320b0eSRobert Watson 897eb320b0eSRobert Watson static void 898eb320b0eSRobert Watson stub_socketpeer_set_from_mbuf(struct mbuf *m, struct label *mlabel, 899eb320b0eSRobert Watson struct socket *so, struct label *sopeerlabel) 900eb320b0eSRobert Watson { 901eb320b0eSRobert Watson 902eb320b0eSRobert Watson } 903eb320b0eSRobert Watson 904eb320b0eSRobert Watson static void 905eb320b0eSRobert Watson stub_socketpeer_set_from_socket(struct socket *oldso, 906eb320b0eSRobert Watson struct label *oldsolabel, struct socket *newso, 907eb320b0eSRobert Watson struct label *newsopeerlabel) 908eb320b0eSRobert Watson { 909eb320b0eSRobert Watson 910eb320b0eSRobert Watson } 911eb320b0eSRobert Watson 912eb320b0eSRobert Watson static void 913eb320b0eSRobert Watson stub_syncache_create(struct label *label, struct inpcb *inp) 914eb320b0eSRobert Watson { 915eb320b0eSRobert Watson 916eb320b0eSRobert Watson } 917eb320b0eSRobert Watson 918eb320b0eSRobert Watson static void 919eb320b0eSRobert Watson stub_syncache_create_mbuf(struct label *sc_label, struct mbuf *m, 920eb320b0eSRobert Watson struct label *mlabel) 921eb320b0eSRobert Watson { 922eb320b0eSRobert Watson 923eb320b0eSRobert Watson } 924eb320b0eSRobert Watson 925d8a7b7a3SRobert Watson static int 92630d239bcSRobert Watson stub_system_check_acct(struct ucred *cred, struct vnode *vp, 92778007886SRobert Watson struct label *vplabel) 92809de2dc2SRobert Watson { 92909de2dc2SRobert Watson 93009de2dc2SRobert Watson return (0); 93109de2dc2SRobert Watson } 93209de2dc2SRobert Watson 93309de2dc2SRobert Watson static int 93430d239bcSRobert Watson stub_system_check_audit(struct ucred *cred, void *record, int length) 93518717f69SRobert Watson { 93618717f69SRobert Watson 93718717f69SRobert Watson return (0); 93818717f69SRobert Watson } 93918717f69SRobert Watson 94018717f69SRobert Watson static int 94130d239bcSRobert Watson stub_system_check_auditctl(struct ucred *cred, struct vnode *vp, 94278007886SRobert Watson struct label *vplabel) 94318717f69SRobert Watson { 94418717f69SRobert Watson 94518717f69SRobert Watson return (0); 94618717f69SRobert Watson } 94718717f69SRobert Watson 94818717f69SRobert Watson static int 94930d239bcSRobert Watson stub_system_check_auditon(struct ucred *cred, int cmd) 95018717f69SRobert Watson { 95118717f69SRobert Watson 95218717f69SRobert Watson return (0); 95318717f69SRobert Watson } 95418717f69SRobert Watson 95518717f69SRobert Watson static int 95630d239bcSRobert Watson stub_system_check_reboot(struct ucred *cred, int how) 957927f6069SRobert Watson { 958927f6069SRobert Watson 959927f6069SRobert Watson return (0); 960927f6069SRobert Watson } 961927f6069SRobert Watson 962927f6069SRobert Watson static int 96330d239bcSRobert Watson stub_system_check_swapoff(struct ucred *cred, struct vnode *vp, 96478007886SRobert Watson struct label *vplabel) 965927f6069SRobert Watson { 966927f6069SRobert Watson 967927f6069SRobert Watson return (0); 968927f6069SRobert Watson } 969927f6069SRobert Watson 970927f6069SRobert Watson static int 97130d239bcSRobert Watson stub_system_check_swapon(struct ucred *cred, struct vnode *vp, 97278007886SRobert Watson struct label *vplabel) 97309de2dc2SRobert Watson { 97409de2dc2SRobert Watson 97509de2dc2SRobert Watson return (0); 97609de2dc2SRobert Watson } 97709de2dc2SRobert Watson 97809de2dc2SRobert Watson static int 97930d239bcSRobert Watson stub_system_check_sysctl(struct ucred *cred, struct sysctl_oid *oidp, 98063dba32bSPawel Jakub Dawidek void *arg1, int arg2, struct sysctl_req *req) 981927f6069SRobert Watson { 982927f6069SRobert Watson 983927f6069SRobert Watson return (0); 984927f6069SRobert Watson } 985927f6069SRobert Watson 986927f6069SRobert Watson static int 98730d239bcSRobert Watson stub_vnode_check_access(struct ucred *cred, struct vnode *vp, 98878007886SRobert Watson struct label *vplabel, int acc_mode) 989d8a7b7a3SRobert Watson { 990d8a7b7a3SRobert Watson 991d8a7b7a3SRobert Watson return (0); 992d8a7b7a3SRobert Watson } 993d8a7b7a3SRobert Watson 994d8a7b7a3SRobert Watson static int 99530d239bcSRobert Watson stub_vnode_check_chdir(struct ucred *cred, struct vnode *dvp, 99678007886SRobert Watson struct label *dvplabel) 997d8a7b7a3SRobert Watson { 998d8a7b7a3SRobert Watson 999d8a7b7a3SRobert Watson return (0); 1000d8a7b7a3SRobert Watson } 1001d8a7b7a3SRobert Watson 1002d8a7b7a3SRobert Watson static int 100330d239bcSRobert Watson stub_vnode_check_chroot(struct ucred *cred, struct vnode *dvp, 100478007886SRobert Watson struct label *dvplabel) 1005d8a7b7a3SRobert Watson { 1006d8a7b7a3SRobert Watson 1007d8a7b7a3SRobert Watson return (0); 1008d8a7b7a3SRobert Watson } 1009d8a7b7a3SRobert Watson 1010d8a7b7a3SRobert Watson static int 101130d239bcSRobert Watson stub_vnode_check_create(struct ucred *cred, struct vnode *dvp, 101278007886SRobert Watson struct label *dvplabel, struct componentname *cnp, struct vattr *vap) 1013d8a7b7a3SRobert Watson { 1014d8a7b7a3SRobert Watson 1015d8a7b7a3SRobert Watson return (0); 1016d8a7b7a3SRobert Watson } 1017d8a7b7a3SRobert Watson 1018eb320b0eSRobert Watson static void 1019eb320b0eSRobert Watson stub_sysvmsg_cleanup(struct label *msglabel) 1020eb320b0eSRobert Watson { 1021eb320b0eSRobert Watson 1022eb320b0eSRobert Watson } 1023eb320b0eSRobert Watson 1024eb320b0eSRobert Watson static void 1025eb320b0eSRobert Watson stub_sysvmsg_create(struct ucred *cred, struct msqid_kernel *msqkptr, 1026eb320b0eSRobert Watson struct label *msqlabel, struct msg *msgptr, struct label *msglabel) 1027eb320b0eSRobert Watson { 1028eb320b0eSRobert Watson 1029eb320b0eSRobert Watson } 1030eb320b0eSRobert Watson 1031eb320b0eSRobert Watson static int 1032eb320b0eSRobert Watson stub_sysvmsq_check_msgmsq(struct ucred *cred, struct msg *msgptr, 1033eb320b0eSRobert Watson struct label *msglabel, struct msqid_kernel *msqkptr, 1034eb320b0eSRobert Watson struct label *msqklabel) 1035eb320b0eSRobert Watson { 1036eb320b0eSRobert Watson 1037eb320b0eSRobert Watson return (0); 1038eb320b0eSRobert Watson } 1039eb320b0eSRobert Watson 1040eb320b0eSRobert Watson static int 1041eb320b0eSRobert Watson stub_sysvmsq_check_msgrcv(struct ucred *cred, struct msg *msgptr, 1042eb320b0eSRobert Watson struct label *msglabel) 1043eb320b0eSRobert Watson { 1044eb320b0eSRobert Watson 1045eb320b0eSRobert Watson return (0); 1046eb320b0eSRobert Watson } 1047eb320b0eSRobert Watson 1048eb320b0eSRobert Watson 1049eb320b0eSRobert Watson static int 1050eb320b0eSRobert Watson stub_sysvmsq_check_msgrmid(struct ucred *cred, struct msg *msgptr, 1051eb320b0eSRobert Watson struct label *msglabel) 1052eb320b0eSRobert Watson { 1053eb320b0eSRobert Watson 1054eb320b0eSRobert Watson return (0); 1055eb320b0eSRobert Watson } 1056eb320b0eSRobert Watson 1057eb320b0eSRobert Watson 1058eb320b0eSRobert Watson static int 1059eb320b0eSRobert Watson stub_sysvmsq_check_msqget(struct ucred *cred, struct msqid_kernel *msqkptr, 1060eb320b0eSRobert Watson struct label *msqklabel) 1061eb320b0eSRobert Watson { 1062eb320b0eSRobert Watson 1063eb320b0eSRobert Watson return (0); 1064eb320b0eSRobert Watson } 1065eb320b0eSRobert Watson 1066eb320b0eSRobert Watson 1067eb320b0eSRobert Watson static int 1068eb320b0eSRobert Watson stub_sysvmsq_check_msqsnd(struct ucred *cred, struct msqid_kernel *msqkptr, 1069eb320b0eSRobert Watson struct label *msqklabel) 1070eb320b0eSRobert Watson { 1071eb320b0eSRobert Watson 1072eb320b0eSRobert Watson return (0); 1073eb320b0eSRobert Watson } 1074eb320b0eSRobert Watson 1075eb320b0eSRobert Watson static int 1076eb320b0eSRobert Watson stub_sysvmsq_check_msqrcv(struct ucred *cred, struct msqid_kernel *msqkptr, 1077eb320b0eSRobert Watson struct label *msqklabel) 1078eb320b0eSRobert Watson { 1079eb320b0eSRobert Watson 1080eb320b0eSRobert Watson return (0); 1081eb320b0eSRobert Watson } 1082eb320b0eSRobert Watson 1083eb320b0eSRobert Watson 1084eb320b0eSRobert Watson static int 1085eb320b0eSRobert Watson stub_sysvmsq_check_msqctl(struct ucred *cred, struct msqid_kernel *msqkptr, 1086eb320b0eSRobert Watson struct label *msqklabel, int cmd) 1087eb320b0eSRobert Watson { 1088eb320b0eSRobert Watson 1089eb320b0eSRobert Watson return (0); 1090eb320b0eSRobert Watson } 1091eb320b0eSRobert Watson 1092eb320b0eSRobert Watson 1093eb320b0eSRobert Watson static void 1094eb320b0eSRobert Watson stub_sysvmsq_cleanup(struct label *msqlabel) 1095eb320b0eSRobert Watson { 1096eb320b0eSRobert Watson 1097eb320b0eSRobert Watson } 1098eb320b0eSRobert Watson 1099eb320b0eSRobert Watson static void 1100eb320b0eSRobert Watson stub_sysvmsq_create(struct ucred *cred, struct msqid_kernel *msqkptr, 1101eb320b0eSRobert Watson struct label *msqlabel) 1102eb320b0eSRobert Watson { 1103eb320b0eSRobert Watson 1104eb320b0eSRobert Watson } 1105eb320b0eSRobert Watson 1106eb320b0eSRobert Watson static int 1107eb320b0eSRobert Watson stub_sysvsem_check_semctl(struct ucred *cred, struct semid_kernel *semakptr, 1108eb320b0eSRobert Watson struct label *semaklabel, int cmd) 1109eb320b0eSRobert Watson { 1110eb320b0eSRobert Watson 1111eb320b0eSRobert Watson return (0); 1112eb320b0eSRobert Watson } 1113eb320b0eSRobert Watson 1114eb320b0eSRobert Watson static int 1115eb320b0eSRobert Watson stub_sysvsem_check_semget(struct ucred *cred, struct semid_kernel *semakptr, 1116eb320b0eSRobert Watson struct label *semaklabel) 1117eb320b0eSRobert Watson { 1118eb320b0eSRobert Watson 1119eb320b0eSRobert Watson return (0); 1120eb320b0eSRobert Watson } 1121eb320b0eSRobert Watson 1122eb320b0eSRobert Watson 1123eb320b0eSRobert Watson static int 1124eb320b0eSRobert Watson stub_sysvsem_check_semop(struct ucred *cred, struct semid_kernel *semakptr, 1125eb320b0eSRobert Watson struct label *semaklabel, size_t accesstype) 1126eb320b0eSRobert Watson { 1127eb320b0eSRobert Watson 1128eb320b0eSRobert Watson return (0); 1129eb320b0eSRobert Watson } 1130eb320b0eSRobert Watson 1131eb320b0eSRobert Watson static void 1132eb320b0eSRobert Watson stub_sysvsem_cleanup(struct label *semalabel) 1133eb320b0eSRobert Watson { 1134eb320b0eSRobert Watson 1135eb320b0eSRobert Watson } 1136eb320b0eSRobert Watson 1137eb320b0eSRobert Watson static void 1138eb320b0eSRobert Watson stub_sysvsem_create(struct ucred *cred, struct semid_kernel *semakptr, 1139eb320b0eSRobert Watson struct label *semalabel) 1140eb320b0eSRobert Watson { 1141eb320b0eSRobert Watson 1142eb320b0eSRobert Watson } 1143eb320b0eSRobert Watson 1144eb320b0eSRobert Watson static int 1145eb320b0eSRobert Watson stub_sysvshm_check_shmat(struct ucred *cred, struct shmid_kernel *shmsegptr, 1146eb320b0eSRobert Watson struct label *shmseglabel, int shmflg) 1147eb320b0eSRobert Watson { 1148eb320b0eSRobert Watson 1149eb320b0eSRobert Watson return (0); 1150eb320b0eSRobert Watson } 1151eb320b0eSRobert Watson 1152eb320b0eSRobert Watson static int 1153eb320b0eSRobert Watson stub_sysvshm_check_shmctl(struct ucred *cred, struct shmid_kernel *shmsegptr, 1154eb320b0eSRobert Watson struct label *shmseglabel, int cmd) 1155eb320b0eSRobert Watson { 1156eb320b0eSRobert Watson 1157eb320b0eSRobert Watson return (0); 1158eb320b0eSRobert Watson } 1159eb320b0eSRobert Watson 1160eb320b0eSRobert Watson static int 1161eb320b0eSRobert Watson stub_sysvshm_check_shmdt(struct ucred *cred, struct shmid_kernel *shmsegptr, 1162eb320b0eSRobert Watson struct label *shmseglabel) 1163eb320b0eSRobert Watson { 1164eb320b0eSRobert Watson 1165eb320b0eSRobert Watson return (0); 1166eb320b0eSRobert Watson } 1167eb320b0eSRobert Watson 1168eb320b0eSRobert Watson 1169eb320b0eSRobert Watson static int 1170eb320b0eSRobert Watson stub_sysvshm_check_shmget(struct ucred *cred, struct shmid_kernel *shmsegptr, 1171eb320b0eSRobert Watson struct label *shmseglabel, int shmflg) 1172eb320b0eSRobert Watson { 1173eb320b0eSRobert Watson 1174eb320b0eSRobert Watson return (0); 1175eb320b0eSRobert Watson } 1176eb320b0eSRobert Watson 1177eb320b0eSRobert Watson static void 1178eb320b0eSRobert Watson stub_sysvshm_cleanup(struct label *shmlabel) 1179eb320b0eSRobert Watson { 1180eb320b0eSRobert Watson 1181eb320b0eSRobert Watson } 1182eb320b0eSRobert Watson 1183eb320b0eSRobert Watson static void 1184eb320b0eSRobert Watson stub_sysvshm_create(struct ucred *cred, struct shmid_kernel *shmsegptr, 1185eb320b0eSRobert Watson struct label *shmalabel) 1186eb320b0eSRobert Watson { 1187eb320b0eSRobert Watson 1188eb320b0eSRobert Watson } 1189eb320b0eSRobert Watson 1190eb320b0eSRobert Watson static void 1191eb320b0eSRobert Watson stub_thread_userret(struct thread *td) 1192eb320b0eSRobert Watson { 1193eb320b0eSRobert Watson 1194eb320b0eSRobert Watson } 1195eb320b0eSRobert Watson 1196eb320b0eSRobert Watson static int 1197eb320b0eSRobert Watson stub_vnode_associate_extattr(struct mount *mp, struct label *mplabel, 1198eb320b0eSRobert Watson struct vnode *vp, struct label *vplabel) 1199eb320b0eSRobert Watson { 1200eb320b0eSRobert Watson 1201eb320b0eSRobert Watson return (0); 1202eb320b0eSRobert Watson } 1203eb320b0eSRobert Watson 1204eb320b0eSRobert Watson static void 1205eb320b0eSRobert Watson stub_vnode_associate_singlelabel(struct mount *mp, struct label *mplabel, 1206eb320b0eSRobert Watson struct vnode *vp, struct label *vplabel) 1207eb320b0eSRobert Watson { 1208eb320b0eSRobert Watson 1209eb320b0eSRobert Watson } 1210eb320b0eSRobert Watson 1211d8a7b7a3SRobert Watson static int 121230d239bcSRobert Watson stub_vnode_check_deleteacl(struct ucred *cred, struct vnode *vp, 121378007886SRobert Watson struct label *vplabel, acl_type_t type) 1214d8a7b7a3SRobert Watson { 1215d8a7b7a3SRobert Watson 1216d8a7b7a3SRobert Watson return (0); 1217d8a7b7a3SRobert Watson } 1218d8a7b7a3SRobert Watson 1219d8a7b7a3SRobert Watson static int 122030d239bcSRobert Watson stub_vnode_check_deleteextattr(struct ucred *cred, struct vnode *vp, 122178007886SRobert Watson struct label *vplabel, int attrnamespace, const char *name) 122264f00af8SRobert Watson { 122364f00af8SRobert Watson 122464f00af8SRobert Watson return (0); 122564f00af8SRobert Watson } 122664f00af8SRobert Watson 122764f00af8SRobert Watson static int 122830d239bcSRobert Watson stub_vnode_check_exec(struct ucred *cred, struct vnode *vp, 122978007886SRobert Watson struct label *vplabel, struct image_params *imgp, 1230ef5def59SRobert Watson struct label *execlabel) 1231d8a7b7a3SRobert Watson { 1232d8a7b7a3SRobert Watson 1233d8a7b7a3SRobert Watson return (0); 1234d8a7b7a3SRobert Watson } 1235d8a7b7a3SRobert Watson 1236d8a7b7a3SRobert Watson static int 123730d239bcSRobert Watson stub_vnode_check_getacl(struct ucred *cred, struct vnode *vp, 123878007886SRobert Watson struct label *vplabel, acl_type_t type) 1239d8a7b7a3SRobert Watson { 1240d8a7b7a3SRobert Watson 1241d8a7b7a3SRobert Watson return (0); 1242d8a7b7a3SRobert Watson } 1243d8a7b7a3SRobert Watson 1244d8a7b7a3SRobert Watson static int 124530d239bcSRobert Watson stub_vnode_check_getextattr(struct ucred *cred, struct vnode *vp, 124678007886SRobert Watson struct label *vplabel, int attrnamespace, const char *name, 124778007886SRobert Watson struct uio *uio) 1248d8a7b7a3SRobert Watson { 1249d8a7b7a3SRobert Watson 1250d8a7b7a3SRobert Watson return (0); 1251d8a7b7a3SRobert Watson } 1252d8a7b7a3SRobert Watson 1253d8a7b7a3SRobert Watson static int 125430d239bcSRobert Watson stub_vnode_check_link(struct ucred *cred, struct vnode *dvp, 125578007886SRobert Watson struct label *dvplabel, struct vnode *vp, struct label *vplabel, 1256c27b50f5SRobert Watson struct componentname *cnp) 1257c27b50f5SRobert Watson { 1258c27b50f5SRobert Watson 1259c27b50f5SRobert Watson return (0); 1260c27b50f5SRobert Watson } 1261c27b50f5SRobert Watson 1262c27b50f5SRobert Watson static int 126330d239bcSRobert Watson stub_vnode_check_listextattr(struct ucred *cred, struct vnode *vp, 126478007886SRobert Watson struct label *vplabel, int attrnamespace) 126564f00af8SRobert Watson { 126664f00af8SRobert Watson 126764f00af8SRobert Watson return (0); 126864f00af8SRobert Watson } 126964f00af8SRobert Watson 127064f00af8SRobert Watson static int 127130d239bcSRobert Watson stub_vnode_check_lookup(struct ucred *cred, struct vnode *dvp, 127278007886SRobert Watson struct label *dvplabel, struct componentname *cnp) 1273d8a7b7a3SRobert Watson { 1274d8a7b7a3SRobert Watson 1275d8a7b7a3SRobert Watson return (0); 1276d8a7b7a3SRobert Watson } 1277d8a7b7a3SRobert Watson 1278d8a7b7a3SRobert Watson static int 127930d239bcSRobert Watson stub_vnode_check_mmap(struct ucred *cred, struct vnode *vp, 128078007886SRobert Watson struct label *vplabel, int prot, int flags) 1281e183f80eSRobert Watson { 1282e183f80eSRobert Watson 1283e183f80eSRobert Watson return (0); 1284e183f80eSRobert Watson } 1285e183f80eSRobert Watson 128617870c06SChristian S.J. Peron static void 128730d239bcSRobert Watson stub_vnode_check_mmap_downgrade(struct ucred *cred, struct vnode *vp, 128878007886SRobert Watson struct label *vplabel, int *prot) 128917870c06SChristian S.J. Peron { 129017870c06SChristian S.J. Peron 129117870c06SChristian S.J. Peron } 129217870c06SChristian S.J. Peron 129317870c06SChristian S.J. Peron static int 129430d239bcSRobert Watson stub_vnode_check_mprotect(struct ucred *cred, struct vnode *vp, 129578007886SRobert Watson struct label *vplabel, int prot) 129617870c06SChristian S.J. Peron { 129717870c06SChristian S.J. Peron 129817870c06SChristian S.J. Peron return (0); 129917870c06SChristian S.J. Peron } 130017870c06SChristian S.J. Peron 1301e183f80eSRobert Watson static int 130230d239bcSRobert Watson stub_vnode_check_open(struct ucred *cred, struct vnode *vp, 130378007886SRobert Watson struct label *vplabel, int acc_mode) 1304d8a7b7a3SRobert Watson { 1305d8a7b7a3SRobert Watson 1306d8a7b7a3SRobert Watson return (0); 1307d8a7b7a3SRobert Watson } 1308d8a7b7a3SRobert Watson 1309d8a7b7a3SRobert Watson static int 131030d239bcSRobert Watson stub_vnode_check_poll(struct ucred *active_cred, struct ucred *file_cred, 131178007886SRobert Watson struct vnode *vp, struct label *vplabel) 13127f724f8bSRobert Watson { 13137f724f8bSRobert Watson 13147f724f8bSRobert Watson return (0); 13157f724f8bSRobert Watson } 13167f724f8bSRobert Watson 13177f724f8bSRobert Watson static int 131830d239bcSRobert Watson stub_vnode_check_read(struct ucred *active_cred, struct ucred *file_cred, 131978007886SRobert Watson struct vnode *vp, struct label *vplabel) 13207f724f8bSRobert Watson { 13217f724f8bSRobert Watson 13227f724f8bSRobert Watson return (0); 13237f724f8bSRobert Watson } 13247f724f8bSRobert Watson 13257f724f8bSRobert Watson static int 132630d239bcSRobert Watson stub_vnode_check_readdir(struct ucred *cred, struct vnode *vp, 132778007886SRobert Watson struct label *dvplabel) 1328d8a7b7a3SRobert Watson { 1329d8a7b7a3SRobert Watson 1330d8a7b7a3SRobert Watson return (0); 1331d8a7b7a3SRobert Watson } 1332d8a7b7a3SRobert Watson 1333d8a7b7a3SRobert Watson static int 133430d239bcSRobert Watson stub_vnode_check_readlink(struct ucred *cred, struct vnode *vp, 133578007886SRobert Watson struct label *vplabel) 1336d8a7b7a3SRobert Watson { 1337d8a7b7a3SRobert Watson 1338d8a7b7a3SRobert Watson return (0); 1339d8a7b7a3SRobert Watson } 1340d8a7b7a3SRobert Watson 1341d8a7b7a3SRobert Watson static int 134230d239bcSRobert Watson stub_vnode_check_relabel(struct ucred *cred, struct vnode *vp, 134378007886SRobert Watson struct label *vplabel, struct label *newlabel) 1344d8a7b7a3SRobert Watson { 1345d8a7b7a3SRobert Watson 1346d8a7b7a3SRobert Watson return (0); 1347d8a7b7a3SRobert Watson } 1348d8a7b7a3SRobert Watson 1349d8a7b7a3SRobert Watson static int 135030d239bcSRobert Watson stub_vnode_check_rename_from(struct ucred *cred, struct vnode *dvp, 135178007886SRobert Watson struct label *dvplabel, struct vnode *vp, struct label *vplabel, 1352d8a7b7a3SRobert Watson struct componentname *cnp) 1353d8a7b7a3SRobert Watson { 1354d8a7b7a3SRobert Watson 1355d8a7b7a3SRobert Watson return (0); 1356d8a7b7a3SRobert Watson } 1357d8a7b7a3SRobert Watson 1358d8a7b7a3SRobert Watson static int 135930d239bcSRobert Watson stub_vnode_check_rename_to(struct ucred *cred, struct vnode *dvp, 136078007886SRobert Watson struct label *dvplabel, struct vnode *vp, struct label *vplabel, 136178007886SRobert Watson int samedir, struct componentname *cnp) 1362d8a7b7a3SRobert Watson { 1363d8a7b7a3SRobert Watson 1364d8a7b7a3SRobert Watson return (0); 1365d8a7b7a3SRobert Watson } 1366d8a7b7a3SRobert Watson 1367d8a7b7a3SRobert Watson static int 136830d239bcSRobert Watson stub_vnode_check_revoke(struct ucred *cred, struct vnode *vp, 136978007886SRobert Watson struct label *vplabel) 1370d8a7b7a3SRobert Watson { 1371d8a7b7a3SRobert Watson 1372d8a7b7a3SRobert Watson return (0); 1373d8a7b7a3SRobert Watson } 1374d8a7b7a3SRobert Watson 1375d8a7b7a3SRobert Watson static int 137630d239bcSRobert Watson stub_vnode_check_setacl(struct ucred *cred, struct vnode *vp, 137778007886SRobert Watson struct label *vplabel, acl_type_t type, struct acl *acl) 1378d8a7b7a3SRobert Watson { 1379d8a7b7a3SRobert Watson 1380d8a7b7a3SRobert Watson return (0); 1381d8a7b7a3SRobert Watson } 1382d8a7b7a3SRobert Watson 1383d8a7b7a3SRobert Watson static int 138430d239bcSRobert Watson stub_vnode_check_setextattr(struct ucred *cred, struct vnode *vp, 138578007886SRobert Watson struct label *vplabel, int attrnamespace, const char *name, 138678007886SRobert Watson struct uio *uio) 1387d8a7b7a3SRobert Watson { 1388d8a7b7a3SRobert Watson 1389d8a7b7a3SRobert Watson return (0); 1390d8a7b7a3SRobert Watson } 1391d8a7b7a3SRobert Watson 1392d8a7b7a3SRobert Watson static int 139330d239bcSRobert Watson stub_vnode_check_setflags(struct ucred *cred, struct vnode *vp, 139478007886SRobert Watson struct label *vplabel, u_long flags) 1395d8a7b7a3SRobert Watson { 1396d8a7b7a3SRobert Watson 1397d8a7b7a3SRobert Watson return (0); 1398d8a7b7a3SRobert Watson } 1399d8a7b7a3SRobert Watson 1400d8a7b7a3SRobert Watson static int 140130d239bcSRobert Watson stub_vnode_check_setmode(struct ucred *cred, struct vnode *vp, 140278007886SRobert Watson struct label *vplabel, mode_t mode) 1403d8a7b7a3SRobert Watson { 1404d8a7b7a3SRobert Watson 1405d8a7b7a3SRobert Watson return (0); 1406d8a7b7a3SRobert Watson } 1407d8a7b7a3SRobert Watson 1408d8a7b7a3SRobert Watson static int 140930d239bcSRobert Watson stub_vnode_check_setowner(struct ucred *cred, struct vnode *vp, 141078007886SRobert Watson struct label *vplabel, uid_t uid, gid_t gid) 1411d8a7b7a3SRobert Watson { 1412d8a7b7a3SRobert Watson 1413d8a7b7a3SRobert Watson return (0); 1414d8a7b7a3SRobert Watson } 1415d8a7b7a3SRobert Watson 1416d8a7b7a3SRobert Watson static int 141730d239bcSRobert Watson stub_vnode_check_setutimes(struct ucred *cred, struct vnode *vp, 141878007886SRobert Watson struct label *vplabel, struct timespec atime, struct timespec mtime) 1419d8a7b7a3SRobert Watson { 1420d8a7b7a3SRobert Watson 1421d8a7b7a3SRobert Watson return (0); 1422d8a7b7a3SRobert Watson } 1423d8a7b7a3SRobert Watson 1424d8a7b7a3SRobert Watson static int 142530d239bcSRobert Watson stub_vnode_check_stat(struct ucred *active_cred, struct ucred *file_cred, 142678007886SRobert Watson struct vnode *vp, struct label *vplabel) 1427d8a7b7a3SRobert Watson { 1428d8a7b7a3SRobert Watson 1429d8a7b7a3SRobert Watson return (0); 1430d8a7b7a3SRobert Watson } 1431d8a7b7a3SRobert Watson 14327f724f8bSRobert Watson static int 143330d239bcSRobert Watson stub_vnode_check_unlink(struct ucred *cred, struct vnode *dvp, 143445e0f3d6SRobert Watson struct label *dvplabel, struct vnode *vp, struct label *vplabel, 143545e0f3d6SRobert Watson struct componentname *cnp) 143645e0f3d6SRobert Watson { 143745e0f3d6SRobert Watson 143845e0f3d6SRobert Watson return (0); 143945e0f3d6SRobert Watson } 144045e0f3d6SRobert Watson 144145e0f3d6SRobert Watson static int 144230d239bcSRobert Watson stub_vnode_check_write(struct ucred *active_cred, struct ucred *file_cred, 144378007886SRobert Watson struct vnode *vp, struct label *vplabel) 14447f724f8bSRobert Watson { 14457f724f8bSRobert Watson 14467f724f8bSRobert Watson return (0); 14477f724f8bSRobert Watson } 14487f724f8bSRobert Watson 1449403b781eSRobert Watson static int 1450eb320b0eSRobert Watson stub_vnode_create_extattr(struct ucred *cred, struct mount *mp, 1451eb320b0eSRobert Watson struct label *mntlabel, struct vnode *dvp, struct label *dvplabel, 1452eb320b0eSRobert Watson struct vnode *vp, struct label *vplabel, struct componentname *cnp) 1453403b781eSRobert Watson { 1454403b781eSRobert Watson 1455403b781eSRobert Watson return (0); 1456403b781eSRobert Watson } 1457403b781eSRobert Watson 1458eb320b0eSRobert Watson static void 1459eb320b0eSRobert Watson stub_vnode_execve_transition(struct ucred *old, struct ucred *new, 1460eb320b0eSRobert Watson struct vnode *vp, struct label *vplabel, struct label *interpvplabel, 1461eb320b0eSRobert Watson struct image_params *imgp, struct label *execlabel) 1462403b781eSRobert Watson { 1463403b781eSRobert Watson 1464403b781eSRobert Watson } 1465403b781eSRobert Watson 1466eb320b0eSRobert Watson static int 1467eb320b0eSRobert Watson stub_vnode_execve_will_transition(struct ucred *old, struct vnode *vp, 1468eb320b0eSRobert Watson struct label *vplabel, struct label *interpvplabel, 1469eb320b0eSRobert Watson struct image_params *imgp, struct label *execlabel) 1470eb320b0eSRobert Watson { 1471eb320b0eSRobert Watson 1472eb320b0eSRobert Watson return (0); 1473eb320b0eSRobert Watson } 1474eb320b0eSRobert Watson 1475eb320b0eSRobert Watson static void 1476eb320b0eSRobert Watson stub_vnode_relabel(struct ucred *cred, struct vnode *vp, 1477eb320b0eSRobert Watson struct label *vplabel, struct label *label) 1478eb320b0eSRobert Watson { 1479eb320b0eSRobert Watson 1480eb320b0eSRobert Watson } 1481eb320b0eSRobert Watson 1482eb320b0eSRobert Watson static int 1483eb320b0eSRobert Watson stub_vnode_setlabel_extattr(struct ucred *cred, struct vnode *vp, 1484eb320b0eSRobert Watson struct label *vplabel, struct label *intlabel) 1485eb320b0eSRobert Watson { 1486eb320b0eSRobert Watson 1487eb320b0eSRobert Watson return (0); 1488eb320b0eSRobert Watson } 1489eb320b0eSRobert Watson 1490eb320b0eSRobert Watson /* 1491eb320b0eSRobert Watson * Register functions with MAC Framework policy entry points. 1492eb320b0eSRobert Watson */ 14933f1a7a90SRobert Watson static struct mac_policy_ops stub_ops = 1494d8a7b7a3SRobert Watson { 14951c3f91cdSRobert Watson .mpo_destroy = stub_destroy, 14961c3f91cdSRobert Watson .mpo_init = stub_init, 14971c3f91cdSRobert Watson .mpo_syscall = stub_syscall, 1498eb320b0eSRobert Watson 1499eb320b0eSRobert Watson .mpo_bpfdesc_check_receive = stub_bpfdesc_check_receive, 1500eb320b0eSRobert Watson .mpo_bpfdesc_create = stub_bpfdesc_create, 1501eb320b0eSRobert Watson .mpo_bpfdesc_create_mbuf = stub_bpfdesc_create_mbuf, 150230d239bcSRobert Watson .mpo_bpfdesc_destroy_label = stub_destroy_label, 1503eb320b0eSRobert Watson .mpo_bpfdesc_init_label = stub_init_label, 1504eb320b0eSRobert Watson 1505eb320b0eSRobert Watson .mpo_cred_check_relabel = stub_cred_check_relabel, 1506eb320b0eSRobert Watson .mpo_cred_check_visible = stub_cred_check_visible, 150730d239bcSRobert Watson .mpo_cred_copy_label = stub_copy_label, 1508eb320b0eSRobert Watson .mpo_cred_destroy_label = stub_destroy_label, 150930d239bcSRobert Watson .mpo_cred_externalize_label = stub_externalize_label, 1510eb320b0eSRobert Watson .mpo_cred_init_label = stub_init_label, 151130d239bcSRobert Watson .mpo_cred_internalize_label = stub_internalize_label, 1512eb320b0eSRobert Watson .mpo_cred_relabel= stub_cred_relabel, 1513eb320b0eSRobert Watson 151430d239bcSRobert Watson .mpo_devfs_create_device = stub_devfs_create_device, 151530d239bcSRobert Watson .mpo_devfs_create_directory = stub_devfs_create_directory, 151630d239bcSRobert Watson .mpo_devfs_create_symlink = stub_devfs_create_symlink, 1517eb320b0eSRobert Watson .mpo_devfs_destroy_label = stub_destroy_label, 1518eb320b0eSRobert Watson .mpo_devfs_init_label = stub_init_label, 151930d239bcSRobert Watson .mpo_devfs_update = stub_devfs_update, 1520eb320b0eSRobert Watson .mpo_devfs_vnode_associate = stub_devfs_vnode_associate, 1521eb320b0eSRobert Watson 152230d239bcSRobert Watson .mpo_ifnet_check_relabel = stub_ifnet_check_relabel, 152330d239bcSRobert Watson .mpo_ifnet_check_transmit = stub_ifnet_check_transmit, 1524eb320b0eSRobert Watson .mpo_ifnet_copy_label = stub_copy_label, 1525eb320b0eSRobert Watson .mpo_ifnet_create = stub_ifnet_create, 1526eb320b0eSRobert Watson .mpo_ifnet_create_mbuf = stub_ifnet_create_mbuf, 1527eb320b0eSRobert Watson .mpo_ifnet_destroy_label = stub_destroy_label, 1528eb320b0eSRobert Watson .mpo_ifnet_externalize_label = stub_externalize_label, 1529eb320b0eSRobert Watson .mpo_ifnet_init_label = stub_init_label, 1530eb320b0eSRobert Watson .mpo_ifnet_internalize_label = stub_internalize_label, 1531eb320b0eSRobert Watson .mpo_ifnet_relabel = stub_ifnet_relabel, 1532eb320b0eSRobert Watson 153330d239bcSRobert Watson .mpo_inpcb_check_deliver = stub_inpcb_check_deliver, 1534eb320b0eSRobert Watson .mpo_inpcb_create = stub_inpcb_create, 1535eb320b0eSRobert Watson .mpo_inpcb_create_mbuf = stub_inpcb_create_mbuf, 1536eb320b0eSRobert Watson .mpo_inpcb_destroy_label = stub_destroy_label, 1537eb320b0eSRobert Watson .mpo_inpcb_init_label = stub_init_label_waitcheck, 1538eb320b0eSRobert Watson .mpo_inpcb_sosetlabel = stub_inpcb_sosetlabel, 1539eb320b0eSRobert Watson 1540eb320b0eSRobert Watson .mpo_ipq_create = stub_ipq_create, 1541eb320b0eSRobert Watson .mpo_ipq_destroy_label = stub_destroy_label, 1542eb320b0eSRobert Watson .mpo_ipq_init_label = stub_init_label_waitcheck, 1543eb320b0eSRobert Watson .mpo_ipq_match = stub_ipq_match, 1544eb320b0eSRobert Watson .mpo_ipq_update = stub_ipq_update, 1545eb320b0eSRobert Watson .mpo_ipq_reassemble = stub_ipq_reassemble, 1546eb320b0eSRobert Watson 154730d239bcSRobert Watson .mpo_kenv_check_dump = stub_kenv_check_dump, 154830d239bcSRobert Watson .mpo_kenv_check_get = stub_kenv_check_get, 154930d239bcSRobert Watson .mpo_kenv_check_set = stub_kenv_check_set, 155030d239bcSRobert Watson .mpo_kenv_check_unset = stub_kenv_check_unset, 1551eb320b0eSRobert Watson 155230d239bcSRobert Watson .mpo_kld_check_load = stub_kld_check_load, 155330d239bcSRobert Watson .mpo_kld_check_stat = stub_kld_check_stat, 1554eb320b0eSRobert Watson 1555eb320b0eSRobert Watson .mpo_mbuf_copy_label = stub_copy_label, 1556eb320b0eSRobert Watson .mpo_mbuf_destroy_label = stub_destroy_label, 1557eb320b0eSRobert Watson .mpo_mbuf_init_label = stub_init_label_waitcheck, 1558eb320b0eSRobert Watson 155930d239bcSRobert Watson .mpo_mount_check_stat = stub_mount_check_stat, 1560eb320b0eSRobert Watson .mpo_mount_create = stub_mount_create, 1561eb320b0eSRobert Watson .mpo_mount_destroy_label = stub_destroy_label, 1562eb320b0eSRobert Watson .mpo_mount_init_label = stub_init_label, 1563eb320b0eSRobert Watson 1564eb320b0eSRobert Watson .mpo_netatalk_aarp_send = stub_netatalk_aarp_send, 1565eb320b0eSRobert Watson 1566eb320b0eSRobert Watson .mpo_netinet_arp_send = stub_netinet_arp_send, 1567eb320b0eSRobert Watson .mpo_netinet_firewall_reply = stub_netinet_firewall_reply, 1568eb320b0eSRobert Watson .mpo_netinet_firewall_send = stub_netinet_firewall_send, 1569eb320b0eSRobert Watson .mpo_netinet_fragment = stub_netinet_fragment, 1570eb320b0eSRobert Watson .mpo_netinet_icmp_reply = stub_netinet_icmp_reply, 1571eb320b0eSRobert Watson .mpo_netinet_icmp_replyinplace = stub_netinet_icmp_replyinplace, 1572eb320b0eSRobert Watson .mpo_netinet_tcp_reply = stub_netinet_tcp_reply, 1573eb320b0eSRobert Watson .mpo_netinet_igmp_send = stub_netinet_igmp_send, 1574eb320b0eSRobert Watson 1575eb320b0eSRobert Watson .mpo_netinet6_nd6_send = stub_netinet6_nd6_send, 1576eb320b0eSRobert Watson 157730d239bcSRobert Watson .mpo_pipe_check_ioctl = stub_pipe_check_ioctl, 157830d239bcSRobert Watson .mpo_pipe_check_poll = stub_pipe_check_poll, 157930d239bcSRobert Watson .mpo_pipe_check_read = stub_pipe_check_read, 158030d239bcSRobert Watson .mpo_pipe_check_relabel = stub_pipe_check_relabel, 158130d239bcSRobert Watson .mpo_pipe_check_stat = stub_pipe_check_stat, 158230d239bcSRobert Watson .mpo_pipe_check_write = stub_pipe_check_write, 1583eb320b0eSRobert Watson .mpo_pipe_copy_label = stub_copy_label, 1584eb320b0eSRobert Watson .mpo_pipe_create = stub_pipe_create, 1585eb320b0eSRobert Watson .mpo_pipe_destroy_label = stub_destroy_label, 1586eb320b0eSRobert Watson .mpo_pipe_externalize_label = stub_externalize_label, 1587eb320b0eSRobert Watson .mpo_pipe_init_label = stub_init_label, 1588eb320b0eSRobert Watson .mpo_pipe_internalize_label = stub_internalize_label, 1589eb320b0eSRobert Watson .mpo_pipe_relabel = stub_pipe_relabel, 1590eb320b0eSRobert Watson 159130d239bcSRobert Watson .mpo_posixsem_check_getvalue = stub_posixsem_check_getvalue, 159230d239bcSRobert Watson .mpo_posixsem_check_open = stub_posixsem_check_open, 159330d239bcSRobert Watson .mpo_posixsem_check_post = stub_posixsem_check_post, 15946bc1e9cdSJohn Baldwin .mpo_posixsem_check_stat = stub_posixsem_check_stat, 159530d239bcSRobert Watson .mpo_posixsem_check_unlink = stub_posixsem_check_unlink, 159630d239bcSRobert Watson .mpo_posixsem_check_wait = stub_posixsem_check_wait, 1597eb320b0eSRobert Watson .mpo_posixsem_create = stub_posixsem_create, 1598eb320b0eSRobert Watson .mpo_posixsem_destroy_label = stub_destroy_label, 1599eb320b0eSRobert Watson .mpo_posixsem_init_label = stub_init_label, 1600eb320b0eSRobert Watson 16018e38aeffSJohn Baldwin .mpo_posixshm_check_mmap = stub_posixshm_check_mmap, 16028e38aeffSJohn Baldwin .mpo_posixshm_check_open = stub_posixshm_check_open, 16038e38aeffSJohn Baldwin .mpo_posixshm_check_stat = stub_posixshm_check_stat, 16048e38aeffSJohn Baldwin .mpo_posixshm_check_truncate = stub_posixshm_check_truncate, 16058e38aeffSJohn Baldwin .mpo_posixshm_check_unlink = stub_posixshm_check_unlink, 16068e38aeffSJohn Baldwin .mpo_posixshm_create = stub_posixshm_create, 16078e38aeffSJohn Baldwin .mpo_posixshm_destroy_label = stub_destroy_label, 16088e38aeffSJohn Baldwin .mpo_posixshm_init_label = stub_init_label, 16098e38aeffSJohn Baldwin 1610eb320b0eSRobert Watson .mpo_priv_check = stub_priv_check, 1611eb320b0eSRobert Watson .mpo_priv_grant = stub_priv_grant, 1612eb320b0eSRobert Watson 1613eb320b0eSRobert Watson .mpo_proc_associate_nfsd = stub_proc_associate_nfsd, 161430d239bcSRobert Watson .mpo_proc_check_debug = stub_proc_check_debug, 161530d239bcSRobert Watson .mpo_proc_check_sched = stub_proc_check_sched, 161630d239bcSRobert Watson .mpo_proc_check_setaudit = stub_proc_check_setaudit, 161730d239bcSRobert Watson .mpo_proc_check_setaudit_addr = stub_proc_check_setaudit_addr, 161830d239bcSRobert Watson .mpo_proc_check_setauid = stub_proc_check_setauid, 1619eb320b0eSRobert Watson .mpo_proc_check_setegid = stub_proc_check_setegid, 162030d239bcSRobert Watson .mpo_proc_check_seteuid = stub_proc_check_seteuid, 162130d239bcSRobert Watson .mpo_proc_check_setgid = stub_proc_check_setgid, 162230d239bcSRobert Watson .mpo_proc_check_setgroups = stub_proc_check_setgroups, 162330d239bcSRobert Watson .mpo_proc_check_setregid = stub_proc_check_setregid, 162430d239bcSRobert Watson .mpo_proc_check_setresgid = stub_proc_check_setresgid, 1625eb320b0eSRobert Watson .mpo_proc_check_setresuid = stub_proc_check_setresuid, 1626eb320b0eSRobert Watson .mpo_proc_check_setreuid = stub_proc_check_setreuid, 1627eb320b0eSRobert Watson .mpo_proc_check_setuid = stub_proc_check_setuid, 162830d239bcSRobert Watson .mpo_proc_check_signal = stub_proc_check_signal, 162930d239bcSRobert Watson .mpo_proc_check_wait = stub_proc_check_wait, 1630eb320b0eSRobert Watson .mpo_proc_create_init = stub_proc_create_init, 1631eb320b0eSRobert Watson .mpo_proc_create_swapper = stub_proc_create_swapper, 1632eb320b0eSRobert Watson 163330d239bcSRobert Watson .mpo_socket_check_accept = stub_socket_check_accept, 163430d239bcSRobert Watson .mpo_socket_check_bind = stub_socket_check_bind, 163530d239bcSRobert Watson .mpo_socket_check_connect = stub_socket_check_connect, 163630d239bcSRobert Watson .mpo_socket_check_create = stub_socket_check_create, 163730d239bcSRobert Watson .mpo_socket_check_deliver = stub_socket_check_deliver, 163830d239bcSRobert Watson .mpo_socket_check_listen = stub_socket_check_listen, 163930d239bcSRobert Watson .mpo_socket_check_poll = stub_socket_check_poll, 164030d239bcSRobert Watson .mpo_socket_check_receive = stub_socket_check_receive, 164130d239bcSRobert Watson .mpo_socket_check_relabel = stub_socket_check_relabel, 164230d239bcSRobert Watson .mpo_socket_check_send = stub_socket_check_send, 164330d239bcSRobert Watson .mpo_socket_check_stat = stub_socket_check_stat, 164430d239bcSRobert Watson .mpo_socket_check_visible = stub_socket_check_visible, 1645eb320b0eSRobert Watson .mpo_socket_copy_label = stub_copy_label, 1646eb320b0eSRobert Watson .mpo_socket_create = stub_socket_create, 1647eb320b0eSRobert Watson .mpo_socket_create_mbuf = stub_socket_create_mbuf, 1648eb320b0eSRobert Watson .mpo_socket_destroy_label = stub_destroy_label, 1649eb320b0eSRobert Watson .mpo_socket_externalize_label = stub_externalize_label, 1650eb320b0eSRobert Watson .mpo_socket_init_label = stub_init_label_waitcheck, 1651eb320b0eSRobert Watson .mpo_socket_internalize_label = stub_internalize_label, 1652eb320b0eSRobert Watson .mpo_socket_newconn = stub_socket_newconn, 1653eb320b0eSRobert Watson .mpo_socket_relabel = stub_socket_relabel, 1654eb320b0eSRobert Watson 1655eb320b0eSRobert Watson .mpo_socketpeer_destroy_label = stub_destroy_label, 1656eb320b0eSRobert Watson .mpo_socketpeer_externalize_label = stub_externalize_label, 1657eb320b0eSRobert Watson .mpo_socketpeer_init_label = stub_init_label_waitcheck, 1658eb320b0eSRobert Watson .mpo_socketpeer_set_from_mbuf = stub_socketpeer_set_from_mbuf, 1659eb320b0eSRobert Watson .mpo_socketpeer_set_from_socket = stub_socketpeer_set_from_socket, 1660eb320b0eSRobert Watson 1661eb320b0eSRobert Watson .mpo_syncache_init_label = stub_init_label_waitcheck, 1662eb320b0eSRobert Watson .mpo_syncache_destroy_label = stub_destroy_label, 1663eb320b0eSRobert Watson .mpo_syncache_create = stub_syncache_create, 1664eb320b0eSRobert Watson .mpo_syncache_create_mbuf= stub_syncache_create_mbuf, 1665eb320b0eSRobert Watson 1666eb320b0eSRobert Watson .mpo_sysvmsg_cleanup = stub_sysvmsg_cleanup, 1667eb320b0eSRobert Watson .mpo_sysvmsg_create = stub_sysvmsg_create, 1668eb320b0eSRobert Watson .mpo_sysvmsg_destroy_label = stub_destroy_label, 1669eb320b0eSRobert Watson .mpo_sysvmsg_init_label = stub_init_label, 1670eb320b0eSRobert Watson 1671eb320b0eSRobert Watson .mpo_sysvmsq_check_msgmsq = stub_sysvmsq_check_msgmsq, 1672eb320b0eSRobert Watson .mpo_sysvmsq_check_msgrcv = stub_sysvmsq_check_msgrcv, 1673eb320b0eSRobert Watson .mpo_sysvmsq_check_msgrmid = stub_sysvmsq_check_msgrmid, 1674eb320b0eSRobert Watson .mpo_sysvmsq_check_msqget = stub_sysvmsq_check_msqget, 1675eb320b0eSRobert Watson .mpo_sysvmsq_check_msqsnd = stub_sysvmsq_check_msqsnd, 1676eb320b0eSRobert Watson .mpo_sysvmsq_check_msqrcv = stub_sysvmsq_check_msqrcv, 1677eb320b0eSRobert Watson .mpo_sysvmsq_check_msqctl = stub_sysvmsq_check_msqctl, 1678eb320b0eSRobert Watson .mpo_sysvmsq_cleanup = stub_sysvmsq_cleanup, 1679eb320b0eSRobert Watson .mpo_sysvmsq_create = stub_sysvmsq_create, 1680eb320b0eSRobert Watson .mpo_sysvmsq_destroy_label = stub_destroy_label, 1681eb320b0eSRobert Watson .mpo_sysvmsq_init_label = stub_init_label, 1682eb320b0eSRobert Watson 1683eb320b0eSRobert Watson .mpo_sysvsem_check_semctl = stub_sysvsem_check_semctl, 1684eb320b0eSRobert Watson .mpo_sysvsem_check_semget = stub_sysvsem_check_semget, 1685eb320b0eSRobert Watson .mpo_sysvsem_check_semop = stub_sysvsem_check_semop, 1686eb320b0eSRobert Watson .mpo_sysvsem_cleanup = stub_sysvsem_cleanup, 1687eb320b0eSRobert Watson .mpo_sysvsem_create = stub_sysvsem_create, 1688eb320b0eSRobert Watson .mpo_sysvsem_destroy_label = stub_destroy_label, 1689eb320b0eSRobert Watson .mpo_sysvsem_init_label = stub_init_label, 1690eb320b0eSRobert Watson 1691eb320b0eSRobert Watson .mpo_sysvshm_check_shmat = stub_sysvshm_check_shmat, 1692eb320b0eSRobert Watson .mpo_sysvshm_check_shmctl = stub_sysvshm_check_shmctl, 1693eb320b0eSRobert Watson .mpo_sysvshm_check_shmdt = stub_sysvshm_check_shmdt, 1694eb320b0eSRobert Watson .mpo_sysvshm_check_shmget = stub_sysvshm_check_shmget, 1695eb320b0eSRobert Watson .mpo_sysvshm_cleanup = stub_sysvshm_cleanup, 1696eb320b0eSRobert Watson .mpo_sysvshm_create = stub_sysvshm_create, 1697eb320b0eSRobert Watson .mpo_sysvshm_destroy_label = stub_destroy_label, 1698eb320b0eSRobert Watson .mpo_sysvshm_init_label = stub_init_label, 1699eb320b0eSRobert Watson 170030d239bcSRobert Watson .mpo_system_check_acct = stub_system_check_acct, 170130d239bcSRobert Watson .mpo_system_check_audit = stub_system_check_audit, 170230d239bcSRobert Watson .mpo_system_check_auditctl = stub_system_check_auditctl, 170330d239bcSRobert Watson .mpo_system_check_auditon = stub_system_check_auditon, 170430d239bcSRobert Watson .mpo_system_check_reboot = stub_system_check_reboot, 170530d239bcSRobert Watson .mpo_system_check_swapoff = stub_system_check_swapoff, 170630d239bcSRobert Watson .mpo_system_check_swapon = stub_system_check_swapon, 170730d239bcSRobert Watson .mpo_system_check_sysctl = stub_system_check_sysctl, 1708eb320b0eSRobert Watson 1709eb320b0eSRobert Watson .mpo_thread_userret = stub_thread_userret, 1710eb320b0eSRobert Watson 1711eb320b0eSRobert Watson .mpo_vnode_associate_extattr = stub_vnode_associate_extattr, 1712eb320b0eSRobert Watson .mpo_vnode_associate_singlelabel = stub_vnode_associate_singlelabel, 171330d239bcSRobert Watson .mpo_vnode_check_access = stub_vnode_check_access, 171430d239bcSRobert Watson .mpo_vnode_check_chdir = stub_vnode_check_chdir, 171530d239bcSRobert Watson .mpo_vnode_check_chroot = stub_vnode_check_chroot, 171630d239bcSRobert Watson .mpo_vnode_check_create = stub_vnode_check_create, 171730d239bcSRobert Watson .mpo_vnode_check_deleteacl = stub_vnode_check_deleteacl, 171830d239bcSRobert Watson .mpo_vnode_check_deleteextattr = stub_vnode_check_deleteextattr, 171930d239bcSRobert Watson .mpo_vnode_check_exec = stub_vnode_check_exec, 172030d239bcSRobert Watson .mpo_vnode_check_getacl = stub_vnode_check_getacl, 172130d239bcSRobert Watson .mpo_vnode_check_getextattr = stub_vnode_check_getextattr, 172230d239bcSRobert Watson .mpo_vnode_check_link = stub_vnode_check_link, 172330d239bcSRobert Watson .mpo_vnode_check_listextattr = stub_vnode_check_listextattr, 172430d239bcSRobert Watson .mpo_vnode_check_lookup = stub_vnode_check_lookup, 172530d239bcSRobert Watson .mpo_vnode_check_mmap = stub_vnode_check_mmap, 172630d239bcSRobert Watson .mpo_vnode_check_mmap_downgrade = stub_vnode_check_mmap_downgrade, 172730d239bcSRobert Watson .mpo_vnode_check_mprotect = stub_vnode_check_mprotect, 172830d239bcSRobert Watson .mpo_vnode_check_open = stub_vnode_check_open, 172930d239bcSRobert Watson .mpo_vnode_check_poll = stub_vnode_check_poll, 173030d239bcSRobert Watson .mpo_vnode_check_read = stub_vnode_check_read, 173130d239bcSRobert Watson .mpo_vnode_check_readdir = stub_vnode_check_readdir, 173230d239bcSRobert Watson .mpo_vnode_check_readlink = stub_vnode_check_readlink, 173330d239bcSRobert Watson .mpo_vnode_check_relabel = stub_vnode_check_relabel, 173430d239bcSRobert Watson .mpo_vnode_check_rename_from = stub_vnode_check_rename_from, 173530d239bcSRobert Watson .mpo_vnode_check_rename_to = stub_vnode_check_rename_to, 173630d239bcSRobert Watson .mpo_vnode_check_revoke = stub_vnode_check_revoke, 173730d239bcSRobert Watson .mpo_vnode_check_setacl = stub_vnode_check_setacl, 173830d239bcSRobert Watson .mpo_vnode_check_setextattr = stub_vnode_check_setextattr, 173930d239bcSRobert Watson .mpo_vnode_check_setflags = stub_vnode_check_setflags, 174030d239bcSRobert Watson .mpo_vnode_check_setmode = stub_vnode_check_setmode, 174130d239bcSRobert Watson .mpo_vnode_check_setowner = stub_vnode_check_setowner, 174230d239bcSRobert Watson .mpo_vnode_check_setutimes = stub_vnode_check_setutimes, 174330d239bcSRobert Watson .mpo_vnode_check_stat = stub_vnode_check_stat, 174430d239bcSRobert Watson .mpo_vnode_check_unlink = stub_vnode_check_unlink, 174530d239bcSRobert Watson .mpo_vnode_check_write = stub_vnode_check_write, 1746eb320b0eSRobert Watson .mpo_vnode_copy_label = stub_copy_label, 1747eb320b0eSRobert Watson .mpo_vnode_create_extattr = stub_vnode_create_extattr, 1748eb320b0eSRobert Watson .mpo_vnode_destroy_label = stub_destroy_label, 1749eb320b0eSRobert Watson .mpo_vnode_execve_transition = stub_vnode_execve_transition, 1750eb320b0eSRobert Watson .mpo_vnode_execve_will_transition = stub_vnode_execve_will_transition, 1751eb320b0eSRobert Watson .mpo_vnode_externalize_label = stub_externalize_label, 1752eb320b0eSRobert Watson .mpo_vnode_init_label = stub_init_label, 1753eb320b0eSRobert Watson .mpo_vnode_internalize_label = stub_internalize_label, 1754eb320b0eSRobert Watson .mpo_vnode_relabel = stub_vnode_relabel, 1755eb320b0eSRobert Watson .mpo_vnode_setlabel_extattr = stub_vnode_setlabel_extattr, 1756d8a7b7a3SRobert Watson }; 1757d8a7b7a3SRobert Watson 17586356dba0SRobert Watson #define STUB_OBJECTS (MPC_OBJECT_CRED | \ 17596356dba0SRobert Watson /* XXX: MPC_OBJECT_PROC | */ \ 17606356dba0SRobert Watson MPC_OBJECT_VNODE | \ 17616356dba0SRobert Watson MPC_OBJECT_INPCB | \ 17626356dba0SRobert Watson MPC_OBJECT_SOCKET | \ 17636356dba0SRobert Watson MPC_OBJECT_DEVFS | \ 17646356dba0SRobert Watson MPC_OBJECT_MBUF | \ 17656356dba0SRobert Watson MPC_OBJECT_IPQ | \ 17666356dba0SRobert Watson MPC_OBJECT_IFNET | \ 17676356dba0SRobert Watson MPC_OBJECT_BPFDESC | \ 17686356dba0SRobert Watson MPC_OBJECT_PIPE | \ 17696356dba0SRobert Watson MPC_OBJECT_MOUNT | \ 17706356dba0SRobert Watson MPC_OBJECT_POSIXSEM | \ 17716356dba0SRobert Watson MPC_OBJECT_POSIXSHM | \ 17726356dba0SRobert Watson MPC_OBJECT_SYSVMSG | \ 17736356dba0SRobert Watson MPC_OBJECT_SYSVMSQ | \ 17746356dba0SRobert Watson MPC_OBJECT_SYSVSEM | \ 17756356dba0SRobert Watson MPC_OBJECT_SYSVSHM | \ 17766356dba0SRobert Watson MPC_OBJECT_SYNCACHE) 17776356dba0SRobert Watson 17783f1a7a90SRobert Watson MAC_POLICY_SET(&stub_ops, mac_stub, "TrustedBSD MAC/Stub", 17796356dba0SRobert Watson MPC_LOADTIME_FLAG_UNLOADOK, NULL, STUB_OBJECTS); 1780