1d8a7b7a3SRobert Watson /*- 2048e1287SRobert Watson * Copyright (c) 1999-2002, 2007-2008 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 188212ab0cfSRobert Watson static void 189212ab0cfSRobert Watson stub_cred_associate_nfsd(struct ucred *cred) 190212ab0cfSRobert Watson { 191212ab0cfSRobert Watson 192212ab0cfSRobert Watson } 193212ab0cfSRobert Watson 194eb320b0eSRobert Watson static int 195eb320b0eSRobert Watson stub_cred_check_relabel(struct ucred *cred, struct label *newlabel) 196eb320b0eSRobert Watson { 197eb320b0eSRobert Watson 198eb320b0eSRobert Watson return (0); 199eb320b0eSRobert Watson } 200eb320b0eSRobert Watson 201eb320b0eSRobert Watson static int 202eb320b0eSRobert Watson stub_cred_check_visible(struct ucred *cr1, struct ucred *cr2) 203eb320b0eSRobert Watson { 204eb320b0eSRobert Watson 205eb320b0eSRobert Watson return (0); 206eb320b0eSRobert Watson } 207eb320b0eSRobert Watson 208eb320b0eSRobert Watson static void 209212ab0cfSRobert Watson stub_cred_create_init(struct ucred *cred) 210212ab0cfSRobert Watson { 211212ab0cfSRobert Watson 212212ab0cfSRobert Watson } 213212ab0cfSRobert Watson 214212ab0cfSRobert Watson static void 215212ab0cfSRobert Watson stub_cred_create_swapper(struct ucred *cred) 216212ab0cfSRobert Watson { 217212ab0cfSRobert Watson 218212ab0cfSRobert Watson } 219212ab0cfSRobert Watson 220212ab0cfSRobert Watson static void 221eb320b0eSRobert Watson stub_cred_relabel(struct ucred *cred, struct label *newlabel) 222763bbd2fSRobert Watson { 223763bbd2fSRobert Watson 224763bbd2fSRobert Watson } 225763bbd2fSRobert Watson 226763bbd2fSRobert Watson static void 22730d239bcSRobert Watson stub_devfs_create_device(struct ucred *cred, struct mount *mp, 22878007886SRobert Watson struct cdev *dev, struct devfs_dirent *de, struct label *delabel) 229eea8ea31SRobert Watson { 230eea8ea31SRobert Watson 231eea8ea31SRobert Watson } 232eea8ea31SRobert Watson 233eea8ea31SRobert Watson static void 23430d239bcSRobert Watson stub_devfs_create_directory(struct mount *mp, char *dirname, 23578007886SRobert Watson int dirnamelen, struct devfs_dirent *de, struct label *delabel) 236990b4b2dSRobert Watson { 237990b4b2dSRobert Watson 238990b4b2dSRobert Watson } 239990b4b2dSRobert Watson 240990b4b2dSRobert Watson static void 24130d239bcSRobert Watson stub_devfs_create_symlink(struct ucred *cred, struct mount *mp, 242990b4b2dSRobert Watson struct devfs_dirent *dd, struct label *ddlabel, struct devfs_dirent *de, 243990b4b2dSRobert Watson struct label *delabel) 244d8a7b7a3SRobert Watson { 245d8a7b7a3SRobert Watson 246d8a7b7a3SRobert Watson } 247d8a7b7a3SRobert Watson 248d8a7b7a3SRobert Watson static void 24930d239bcSRobert Watson stub_devfs_update(struct mount *mp, struct devfs_dirent *de, 25078007886SRobert Watson struct label *delabel, struct vnode *vp, struct label *vplabel) 251d8a7b7a3SRobert Watson { 252d8a7b7a3SRobert Watson 253d8a7b7a3SRobert Watson } 254d8a7b7a3SRobert Watson 255d8a7b7a3SRobert Watson static void 256eb320b0eSRobert Watson stub_devfs_vnode_associate(struct mount *mp, struct label *mplabel, 257eb320b0eSRobert Watson struct devfs_dirent *de, struct label *delabel, struct vnode *vp, 258eb320b0eSRobert Watson struct label *vplabel) 259d8a7b7a3SRobert Watson { 260d8a7b7a3SRobert Watson 261d8a7b7a3SRobert Watson } 262d8a7b7a3SRobert Watson 263d8a7b7a3SRobert Watson static int 26430d239bcSRobert Watson stub_ifnet_check_relabel(struct ucred *cred, struct ifnet *ifp, 26578007886SRobert Watson struct label *ifplabel, struct label *newlabel) 266d8a7b7a3SRobert Watson { 267d8a7b7a3SRobert Watson 268d8a7b7a3SRobert Watson return (0); 269d8a7b7a3SRobert Watson } 270d8a7b7a3SRobert Watson 271d8a7b7a3SRobert Watson static int 27230d239bcSRobert Watson stub_ifnet_check_transmit(struct ifnet *ifp, struct label *ifplabel, 27378007886SRobert Watson struct mbuf *m, struct label *mlabel) 274d8a7b7a3SRobert Watson { 275d8a7b7a3SRobert Watson 276d8a7b7a3SRobert Watson return (0); 277d8a7b7a3SRobert Watson } 278d8a7b7a3SRobert Watson 279eb320b0eSRobert Watson static void 280eb320b0eSRobert Watson stub_ifnet_create(struct ifnet *ifp, struct label *ifplabel) 281eb320b0eSRobert Watson { 282eb320b0eSRobert Watson 283eb320b0eSRobert Watson } 284eb320b0eSRobert Watson 285eb320b0eSRobert Watson static void 286eb320b0eSRobert Watson stub_ifnet_create_mbuf(struct ifnet *ifp, struct label *ifplabel, 287eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 288eb320b0eSRobert Watson { 289eb320b0eSRobert Watson 290eb320b0eSRobert Watson } 291eb320b0eSRobert Watson 292eb320b0eSRobert Watson static void 293eb320b0eSRobert Watson stub_ifnet_relabel(struct ucred *cred, struct ifnet *ifp, 294eb320b0eSRobert Watson struct label *ifplabel, struct label *newlabel) 295eb320b0eSRobert Watson { 296eb320b0eSRobert Watson 297eb320b0eSRobert Watson } 298eb320b0eSRobert Watson 299d8a7b7a3SRobert Watson static int 30030d239bcSRobert Watson stub_inpcb_check_deliver(struct inpcb *inp, struct label *inplabel, 301a557af22SRobert Watson struct mbuf *m, struct label *mlabel) 302a557af22SRobert Watson { 303a557af22SRobert Watson 304a557af22SRobert Watson return (0); 305a557af22SRobert Watson } 306a557af22SRobert Watson 307eb320b0eSRobert Watson static void 308eb320b0eSRobert Watson stub_inpcb_create(struct socket *so, struct label *solabel, 309eb320b0eSRobert Watson struct inpcb *inp, struct label *inplabel) 310ba53d9c9SRobert Watson { 311ba53d9c9SRobert Watson 312eb320b0eSRobert Watson } 313eb320b0eSRobert Watson 314eb320b0eSRobert Watson static void 315eb320b0eSRobert Watson stub_inpcb_create_mbuf(struct inpcb *inp, struct label *inplabel, 316eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 317eb320b0eSRobert Watson { 318eb320b0eSRobert Watson 319eb320b0eSRobert Watson } 320eb320b0eSRobert Watson 321eb320b0eSRobert Watson static void 322eb320b0eSRobert Watson stub_inpcb_sosetlabel(struct socket *so, struct label *solabel, 323eb320b0eSRobert Watson struct inpcb *inp, struct label *inplabel) 324eb320b0eSRobert Watson { 325eb320b0eSRobert Watson 326eb320b0eSRobert Watson } 327eb320b0eSRobert Watson 328eb320b0eSRobert Watson static void 329048e1287SRobert Watson stub_ip6q_create(struct mbuf *m, struct label *mlabel, struct ip6q *q6, 330048e1287SRobert Watson struct label *q6label) 331048e1287SRobert Watson { 332048e1287SRobert Watson 333048e1287SRobert Watson } 334048e1287SRobert Watson 335048e1287SRobert Watson static int 336048e1287SRobert Watson stub_ip6q_match(struct mbuf *m, struct label *mlabel, struct ip6q *q6, 337048e1287SRobert Watson struct label *q6label) 338048e1287SRobert Watson { 339048e1287SRobert Watson 340048e1287SRobert Watson return (1); 341048e1287SRobert Watson } 342048e1287SRobert Watson 343048e1287SRobert Watson static void 344048e1287SRobert Watson stub_ip6q_reassemble(struct ip6q *q6, struct label *q6label, struct mbuf *m, 345048e1287SRobert Watson struct label *mlabel) 346048e1287SRobert Watson { 347048e1287SRobert Watson 348048e1287SRobert Watson } 349048e1287SRobert Watson 350048e1287SRobert Watson static void 351048e1287SRobert Watson stub_ip6q_update(struct mbuf *m, struct label *mlabel, struct ip6q *q6, 352048e1287SRobert Watson struct label *q6label) 353048e1287SRobert Watson { 354048e1287SRobert Watson 355048e1287SRobert Watson } 356048e1287SRobert Watson 357048e1287SRobert Watson static void 35837f44cb4SRobert Watson stub_ipq_create(struct mbuf *m, struct label *mlabel, struct ipq *q, 35937f44cb4SRobert Watson struct label *qlabel) 360eb320b0eSRobert Watson { 361eb320b0eSRobert Watson 362ba53d9c9SRobert Watson } 363ba53d9c9SRobert Watson 364ba53d9c9SRobert Watson static int 36537f44cb4SRobert Watson stub_ipq_match(struct mbuf *m, struct label *mlabel, struct ipq *q, 36637f44cb4SRobert Watson struct label *qlabel) 367ba53d9c9SRobert Watson { 368ba53d9c9SRobert Watson 369eb320b0eSRobert Watson return (1); 370ba53d9c9SRobert Watson } 371ba53d9c9SRobert Watson 372eb320b0eSRobert Watson static void 37337f44cb4SRobert Watson stub_ipq_reassemble(struct ipq *q, struct label *qlabel, struct mbuf *m, 37437f44cb4SRobert Watson struct label *mlabel) 375ba53d9c9SRobert Watson { 376ba53d9c9SRobert Watson 377ba53d9c9SRobert Watson } 378ba53d9c9SRobert Watson 379eb320b0eSRobert Watson static void 38037f44cb4SRobert Watson stub_ipq_update(struct mbuf *m, struct label *mlabel, struct ipq *q, 38137f44cb4SRobert Watson struct label *qlabel) 382ba53d9c9SRobert Watson { 383ba53d9c9SRobert Watson 384ba53d9c9SRobert Watson } 385ba53d9c9SRobert Watson 386ba53d9c9SRobert Watson static int 38730d239bcSRobert Watson stub_kenv_check_dump(struct ucred *cred) 38809de2dc2SRobert Watson { 38909de2dc2SRobert Watson 39009de2dc2SRobert Watson return (0); 39109de2dc2SRobert Watson } 39209de2dc2SRobert Watson 39309de2dc2SRobert Watson static int 39430d239bcSRobert Watson stub_kenv_check_get(struct ucred *cred, char *name) 39509de2dc2SRobert Watson { 39609de2dc2SRobert Watson 39709de2dc2SRobert Watson return (0); 39809de2dc2SRobert Watson } 39909de2dc2SRobert Watson 40009de2dc2SRobert Watson static int 40130d239bcSRobert Watson stub_kenv_check_set(struct ucred *cred, char *name, char *value) 40209de2dc2SRobert Watson { 40309de2dc2SRobert Watson 40409de2dc2SRobert Watson return (0); 40509de2dc2SRobert Watson } 40609de2dc2SRobert Watson 40709de2dc2SRobert Watson static int 40830d239bcSRobert Watson stub_kenv_check_unset(struct ucred *cred, char *name) 40909de2dc2SRobert Watson { 41009de2dc2SRobert Watson 41109de2dc2SRobert Watson return (0); 41209de2dc2SRobert Watson } 41309de2dc2SRobert Watson 41409de2dc2SRobert Watson static int 41530d239bcSRobert Watson stub_kld_check_load(struct ucred *cred, struct vnode *vp, 41678007886SRobert Watson struct label *vplabel) 41709de2dc2SRobert Watson { 41809de2dc2SRobert Watson 41909de2dc2SRobert Watson return (0); 42009de2dc2SRobert Watson } 42109de2dc2SRobert Watson 42209de2dc2SRobert Watson static int 42330d239bcSRobert Watson stub_kld_check_stat(struct ucred *cred) 42409de2dc2SRobert Watson { 42509de2dc2SRobert Watson 42609de2dc2SRobert Watson return (0); 42709de2dc2SRobert Watson } 42809de2dc2SRobert Watson 42909de2dc2SRobert Watson static int 43030d239bcSRobert Watson stub_mount_check_stat(struct ucred *cred, struct mount *mp, 43178007886SRobert Watson struct label *mplabel) 432d8a7b7a3SRobert Watson { 433d8a7b7a3SRobert Watson 434d8a7b7a3SRobert Watson return (0); 435d8a7b7a3SRobert Watson } 436d8a7b7a3SRobert Watson 437eb320b0eSRobert Watson static void 438eb320b0eSRobert Watson stub_mount_create(struct ucred *cred, struct mount *mp, 439eb320b0eSRobert Watson struct label *mplabel) 440eb320b0eSRobert Watson { 441eb320b0eSRobert Watson 442eb320b0eSRobert Watson } 443eb320b0eSRobert Watson 444eb320b0eSRobert Watson static void 445eb320b0eSRobert Watson stub_netatalk_aarp_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_arp_send(struct ifnet *ifp, struct label *iflpabel, 453eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 454eb320b0eSRobert Watson { 455eb320b0eSRobert Watson 456eb320b0eSRobert Watson } 457eb320b0eSRobert Watson 458eb320b0eSRobert Watson static void 459eb320b0eSRobert Watson stub_netinet_firewall_reply(struct mbuf *mrecv, struct label *mrecvlabel, 460eb320b0eSRobert Watson struct mbuf *msend, struct label *msendlabel) 461eb320b0eSRobert Watson { 462eb320b0eSRobert Watson 463eb320b0eSRobert Watson } 464eb320b0eSRobert Watson 465eb320b0eSRobert Watson static void 466eb320b0eSRobert Watson stub_netinet_firewall_send(struct mbuf *m, struct label *mlabel) 467eb320b0eSRobert Watson { 468eb320b0eSRobert Watson 469eb320b0eSRobert Watson } 470eb320b0eSRobert Watson 471eb320b0eSRobert Watson static void 472eb320b0eSRobert Watson stub_netinet_fragment(struct mbuf *m, struct label *mlabel, struct mbuf *frag, 473eb320b0eSRobert Watson struct label *fraglabel) 474eb320b0eSRobert Watson { 475eb320b0eSRobert Watson 476eb320b0eSRobert Watson } 477eb320b0eSRobert Watson 478eb320b0eSRobert Watson static void 479eb320b0eSRobert Watson stub_netinet_icmp_reply(struct mbuf *mrecv, struct label *mrecvlabel, 480eb320b0eSRobert Watson struct mbuf *msend, struct label *msendlabel) 481eb320b0eSRobert Watson { 482eb320b0eSRobert Watson 483eb320b0eSRobert Watson } 484eb320b0eSRobert Watson 485eb320b0eSRobert Watson static void 486eb320b0eSRobert Watson stub_netinet_icmp_replyinplace(struct mbuf *m, struct label *mlabel) 487eb320b0eSRobert Watson { 488eb320b0eSRobert Watson 489eb320b0eSRobert Watson } 490eb320b0eSRobert Watson 491eb320b0eSRobert Watson static void 492eb320b0eSRobert Watson stub_netinet_igmp_send(struct ifnet *ifp, struct label *iflpabel, 493eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 494eb320b0eSRobert Watson { 495eb320b0eSRobert Watson 496eb320b0eSRobert Watson } 497eb320b0eSRobert Watson 498eb320b0eSRobert Watson static void 499eb320b0eSRobert Watson stub_netinet_tcp_reply(struct mbuf *m, struct label *mlabel) 500eb320b0eSRobert Watson { 501eb320b0eSRobert Watson 502eb320b0eSRobert Watson } 503eb320b0eSRobert Watson 504eb320b0eSRobert Watson static void 505eb320b0eSRobert Watson stub_netinet6_nd6_send(struct ifnet *ifp, struct label *iflpabel, 506eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 507eb320b0eSRobert Watson { 508eb320b0eSRobert Watson 509eb320b0eSRobert Watson } 510eb320b0eSRobert Watson 511d8a7b7a3SRobert Watson static int 51230d239bcSRobert Watson stub_pipe_check_ioctl(struct ucred *cred, struct pipepair *pp, 51378007886SRobert Watson struct label *pplabel, unsigned long cmd, void /* caddr_t */ *data) 514d8a7b7a3SRobert Watson { 515d8a7b7a3SRobert Watson 516d8a7b7a3SRobert Watson return (0); 517d8a7b7a3SRobert Watson } 518d8a7b7a3SRobert Watson 519d8a7b7a3SRobert Watson static int 52030d239bcSRobert Watson stub_pipe_check_poll(struct ucred *cred, struct pipepair *pp, 52178007886SRobert Watson struct label *pplabel) 522c024c3eeSRobert Watson { 523c024c3eeSRobert Watson 524c024c3eeSRobert Watson return (0); 525c024c3eeSRobert Watson } 526c024c3eeSRobert Watson 527c024c3eeSRobert Watson static int 52830d239bcSRobert Watson stub_pipe_check_read(struct ucred *cred, struct pipepair *pp, 52978007886SRobert Watson struct label *pplabel) 530d8a7b7a3SRobert Watson { 531d8a7b7a3SRobert Watson 532d8a7b7a3SRobert Watson return (0); 533d8a7b7a3SRobert Watson } 534d8a7b7a3SRobert Watson 535d8a7b7a3SRobert Watson static int 53630d239bcSRobert Watson stub_pipe_check_relabel(struct ucred *cred, struct pipepair *pp, 53778007886SRobert Watson struct label *pplabel, struct label *newlabel) 538d8a7b7a3SRobert Watson { 539d8a7b7a3SRobert Watson 540d8a7b7a3SRobert Watson return (0); 541d8a7b7a3SRobert Watson } 542d8a7b7a3SRobert Watson 543d8a7b7a3SRobert Watson static int 54430d239bcSRobert Watson stub_pipe_check_stat(struct ucred *cred, struct pipepair *pp, 54578007886SRobert Watson struct label *pplabel) 546c024c3eeSRobert Watson { 547c024c3eeSRobert Watson 548c024c3eeSRobert Watson return (0); 549c024c3eeSRobert Watson } 550c024c3eeSRobert Watson 551c024c3eeSRobert Watson static int 55230d239bcSRobert Watson stub_pipe_check_write(struct ucred *cred, struct pipepair *pp, 55378007886SRobert Watson struct label *pplabel) 554c024c3eeSRobert Watson { 555c024c3eeSRobert Watson 556c024c3eeSRobert Watson return (0); 557c024c3eeSRobert Watson } 558c024c3eeSRobert Watson 559eb320b0eSRobert Watson static void 560eb320b0eSRobert Watson stub_pipe_create(struct ucred *cred, struct pipepair *pp, 561eb320b0eSRobert Watson struct label *pplabel) 562eb320b0eSRobert Watson { 563eb320b0eSRobert Watson 564eb320b0eSRobert Watson } 565eb320b0eSRobert Watson 566eb320b0eSRobert Watson static void 567eb320b0eSRobert Watson stub_pipe_relabel(struct ucred *cred, struct pipepair *pp, 568eb320b0eSRobert Watson struct label *pplabel, struct label *newlabel) 569eb320b0eSRobert Watson { 570eb320b0eSRobert Watson 571eb320b0eSRobert Watson } 572eb320b0eSRobert Watson 573c024c3eeSRobert Watson static int 5746bc1e9cdSJohn Baldwin stub_posixsem_check_getvalue(struct ucred *active_cred, struct ucred *file_cred, 5756bc1e9cdSJohn Baldwin struct ksem *ks, struct label *kslabel) 57652648411SRobert Watson { 57752648411SRobert Watson 57852648411SRobert Watson return (0); 57952648411SRobert Watson } 58052648411SRobert Watson 58152648411SRobert Watson static int 58230d239bcSRobert Watson stub_posixsem_check_open(struct ucred *cred, struct ksem *ks, 583fe09513eSRobert Watson struct label *kslabel) 58452648411SRobert Watson { 58552648411SRobert Watson 58652648411SRobert Watson return (0); 58752648411SRobert Watson } 58852648411SRobert Watson 58952648411SRobert Watson static int 5906bc1e9cdSJohn Baldwin stub_posixsem_check_post(struct ucred *active_cred, struct ucred *file_cred, 5916bc1e9cdSJohn Baldwin struct ksem *ks, struct label *kslabel) 5926bc1e9cdSJohn Baldwin { 5936bc1e9cdSJohn Baldwin 5946bc1e9cdSJohn Baldwin return (0); 5956bc1e9cdSJohn Baldwin } 5966bc1e9cdSJohn Baldwin 5976bc1e9cdSJohn Baldwin static int 5986bc1e9cdSJohn Baldwin stub_posixsem_check_stat(struct ucred *active_cred, struct ucred *file_cred, 5996bc1e9cdSJohn Baldwin struct ksem *ks, struct label *kslabel) 60052648411SRobert Watson { 60152648411SRobert Watson 60252648411SRobert Watson return (0); 60352648411SRobert Watson } 60452648411SRobert Watson 60552648411SRobert Watson static int 60630d239bcSRobert Watson stub_posixsem_check_unlink(struct ucred *cred, struct ksem *ks, 607fe09513eSRobert Watson struct label *kslabel) 60852648411SRobert Watson { 60952648411SRobert Watson 61052648411SRobert Watson return (0); 61152648411SRobert Watson } 61252648411SRobert Watson 61352648411SRobert Watson static int 6146bc1e9cdSJohn Baldwin stub_posixsem_check_wait(struct ucred *active_cred, struct ucred *file_cred, 6156bc1e9cdSJohn Baldwin struct ksem *ks, struct label *kslabel) 61652648411SRobert Watson { 61752648411SRobert Watson 61852648411SRobert Watson return (0); 61952648411SRobert Watson } 62052648411SRobert Watson 621eb320b0eSRobert Watson static void 622eb320b0eSRobert Watson stub_posixsem_create(struct ucred *cred, struct ksem *ks, 623eb320b0eSRobert Watson struct label *kslabel) 624eb320b0eSRobert Watson { 625eb320b0eSRobert Watson 626eb320b0eSRobert Watson } 627eb320b0eSRobert Watson 628eb320b0eSRobert Watson static int 6298e38aeffSJohn Baldwin stub_posixshm_check_mmap(struct ucred *cred, struct shmfd *shmfd, 6308e38aeffSJohn Baldwin struct label *shmlabel, int prot, int flags) 6318e38aeffSJohn Baldwin { 6328e38aeffSJohn Baldwin 6338e38aeffSJohn Baldwin return (0); 6348e38aeffSJohn Baldwin } 6358e38aeffSJohn Baldwin 6368e38aeffSJohn Baldwin static int 6378e38aeffSJohn Baldwin stub_posixshm_check_open(struct ucred *cred, struct shmfd *shmfd, 6388e38aeffSJohn Baldwin struct label *shmlabel) 6398e38aeffSJohn Baldwin { 6408e38aeffSJohn Baldwin 6418e38aeffSJohn Baldwin return (0); 6428e38aeffSJohn Baldwin } 6438e38aeffSJohn Baldwin 6448e38aeffSJohn Baldwin static int 6458e38aeffSJohn Baldwin stub_posixshm_check_stat(struct ucred *active_cred, struct ucred *file_cred, 6468e38aeffSJohn Baldwin struct shmfd *shmfd, struct label *shmlabel) 6478e38aeffSJohn Baldwin { 6488e38aeffSJohn Baldwin 6498e38aeffSJohn Baldwin return (0); 6508e38aeffSJohn Baldwin } 6518e38aeffSJohn Baldwin 6528e38aeffSJohn Baldwin static int 6538e38aeffSJohn Baldwin stub_posixshm_check_truncate(struct ucred *active_cred, 6548e38aeffSJohn Baldwin struct ucred *file_cred, struct shmfd *shmfd, struct label *shmlabel) 6558e38aeffSJohn Baldwin { 6568e38aeffSJohn Baldwin 6578e38aeffSJohn Baldwin return (0); 6588e38aeffSJohn Baldwin } 6598e38aeffSJohn Baldwin 6608e38aeffSJohn Baldwin static int 6618e38aeffSJohn Baldwin stub_posixshm_check_unlink(struct ucred *cred, struct shmfd *shmfd, 6628e38aeffSJohn Baldwin struct label *shmlabel) 6638e38aeffSJohn Baldwin { 6648e38aeffSJohn Baldwin 6658e38aeffSJohn Baldwin return (0); 6668e38aeffSJohn Baldwin } 6678e38aeffSJohn Baldwin 6688e38aeffSJohn Baldwin static void 6698e38aeffSJohn Baldwin stub_posixshm_create(struct ucred *cred, struct shmfd *shmfd, 6708e38aeffSJohn Baldwin struct label *shmlabel) 6718e38aeffSJohn Baldwin { 6728e38aeffSJohn Baldwin 6738e38aeffSJohn Baldwin } 6748e38aeffSJohn Baldwin 6758e38aeffSJohn Baldwin static int 676eb320b0eSRobert Watson stub_priv_check(struct ucred *cred, int priv) 677eb320b0eSRobert Watson { 678eb320b0eSRobert Watson 679eb320b0eSRobert Watson return (0); 680eb320b0eSRobert Watson } 681eb320b0eSRobert Watson 682eb320b0eSRobert Watson static int 683eb320b0eSRobert Watson stub_priv_grant(struct ucred *cred, int priv) 684eb320b0eSRobert Watson { 685eb320b0eSRobert Watson 686eb320b0eSRobert Watson return (EPERM); 687eb320b0eSRobert Watson } 688eb320b0eSRobert Watson 68952648411SRobert Watson static int 69030d239bcSRobert Watson stub_proc_check_debug(struct ucred *cred, struct proc *p) 691d8a7b7a3SRobert Watson { 692d8a7b7a3SRobert Watson 693d8a7b7a3SRobert Watson return (0); 694d8a7b7a3SRobert Watson } 695d8a7b7a3SRobert Watson 696d8a7b7a3SRobert Watson static int 69730d239bcSRobert Watson stub_proc_check_sched(struct ucred *cred, struct proc *p) 698d8a7b7a3SRobert Watson { 699d8a7b7a3SRobert Watson 700d8a7b7a3SRobert Watson return (0); 701d8a7b7a3SRobert Watson } 702d8a7b7a3SRobert Watson 703d8a7b7a3SRobert Watson static int 70430d239bcSRobert Watson stub_proc_check_setaudit(struct ucred *cred, struct auditinfo *ai) 70518717f69SRobert Watson { 70618717f69SRobert Watson 70718717f69SRobert Watson return (0); 70818717f69SRobert Watson } 70918717f69SRobert Watson 71018717f69SRobert Watson static int 71130d239bcSRobert Watson stub_proc_check_setaudit_addr(struct ucred *cred, struct auditinfo_addr *aia) 712f1e8bf6dSRobert Watson { 713f1e8bf6dSRobert Watson 714f1e8bf6dSRobert Watson return (0); 715f1e8bf6dSRobert Watson } 716f1e8bf6dSRobert Watson 717f1e8bf6dSRobert Watson static int 71830d239bcSRobert Watson stub_proc_check_setauid(struct ucred *cred, uid_t auid) 71918717f69SRobert Watson { 72018717f69SRobert Watson 72118717f69SRobert Watson return (0); 72218717f69SRobert Watson } 72318717f69SRobert Watson 72418717f69SRobert Watson static int 725eb320b0eSRobert Watson stub_proc_check_setegid(struct ucred *cred, gid_t egid) 726030a28b3SRobert Watson { 727030a28b3SRobert Watson 728030a28b3SRobert Watson return (0); 729030a28b3SRobert Watson } 730030a28b3SRobert Watson 731030a28b3SRobert Watson static int 73230d239bcSRobert Watson stub_proc_check_seteuid(struct ucred *cred, uid_t euid) 733030a28b3SRobert Watson { 734030a28b3SRobert Watson 735030a28b3SRobert Watson return (0); 736030a28b3SRobert Watson } 737030a28b3SRobert Watson 738030a28b3SRobert Watson static int 73930d239bcSRobert Watson stub_proc_check_setgid(struct ucred *cred, gid_t gid) 740030a28b3SRobert Watson { 741030a28b3SRobert Watson 742030a28b3SRobert Watson return (0); 743030a28b3SRobert Watson } 744030a28b3SRobert Watson 745030a28b3SRobert Watson static int 74630d239bcSRobert Watson stub_proc_check_setgroups(struct ucred *cred, int ngroups, 747030a28b3SRobert Watson gid_t *gidset) 748030a28b3SRobert Watson { 749030a28b3SRobert Watson 750030a28b3SRobert Watson return (0); 751030a28b3SRobert Watson } 752030a28b3SRobert Watson 753030a28b3SRobert Watson static int 754eb320b0eSRobert Watson stub_proc_check_setregid(struct ucred *cred, gid_t rgid, gid_t egid) 755030a28b3SRobert Watson { 756030a28b3SRobert Watson 757030a28b3SRobert Watson return (0); 758030a28b3SRobert Watson } 759030a28b3SRobert Watson 760030a28b3SRobert Watson static int 761eb320b0eSRobert Watson stub_proc_check_setresgid(struct ucred *cred, gid_t rgid, gid_t egid, 762eb320b0eSRobert Watson gid_t sgid) 763030a28b3SRobert Watson { 764030a28b3SRobert Watson 765030a28b3SRobert Watson return (0); 766030a28b3SRobert Watson } 767030a28b3SRobert Watson 768030a28b3SRobert Watson static int 76930d239bcSRobert Watson stub_proc_check_setresuid(struct ucred *cred, uid_t ruid, uid_t euid, 770030a28b3SRobert Watson uid_t suid) 771030a28b3SRobert Watson { 772030a28b3SRobert Watson 773030a28b3SRobert Watson return (0); 774030a28b3SRobert Watson } 775030a28b3SRobert Watson 776030a28b3SRobert Watson static int 777eb320b0eSRobert Watson stub_proc_check_setreuid(struct ucred *cred, uid_t ruid, uid_t euid) 778030a28b3SRobert Watson { 779030a28b3SRobert Watson 780030a28b3SRobert Watson return (0); 781030a28b3SRobert Watson } 782030a28b3SRobert Watson 783030a28b3SRobert Watson static int 784eb320b0eSRobert Watson stub_proc_check_setuid(struct ucred *cred, uid_t uid) 785eb320b0eSRobert Watson { 786eb320b0eSRobert Watson 787eb320b0eSRobert Watson return (0); 788eb320b0eSRobert Watson } 789eb320b0eSRobert Watson 790eb320b0eSRobert Watson static int 791eb320b0eSRobert Watson stub_proc_check_signal(struct ucred *cred, struct proc *p, int signum) 792eb320b0eSRobert Watson { 793eb320b0eSRobert Watson 794eb320b0eSRobert Watson return (0); 795eb320b0eSRobert Watson } 796eb320b0eSRobert Watson 797eb320b0eSRobert Watson static int 798eb320b0eSRobert Watson stub_proc_check_wait(struct ucred *cred, struct proc *p) 799eb320b0eSRobert Watson { 800eb320b0eSRobert Watson 801eb320b0eSRobert Watson return (0); 802eb320b0eSRobert Watson } 803eb320b0eSRobert Watson 804eb320b0eSRobert Watson static int 80530d239bcSRobert Watson stub_socket_check_accept(struct ucred *cred, struct socket *so, 80678007886SRobert Watson struct label *solabel) 8077f53207bSRobert Watson { 8087f53207bSRobert Watson 8097f53207bSRobert Watson return (0); 8107f53207bSRobert Watson } 8117f53207bSRobert Watson 8127f53207bSRobert Watson static int 81330d239bcSRobert Watson stub_socket_check_bind(struct ucred *cred, struct socket *so, 81478007886SRobert Watson struct label *solabel, struct sockaddr *sa) 815d8a7b7a3SRobert Watson { 816d8a7b7a3SRobert Watson 817d8a7b7a3SRobert Watson return (0); 818d8a7b7a3SRobert Watson } 819d8a7b7a3SRobert Watson 820d8a7b7a3SRobert Watson static int 82130d239bcSRobert Watson stub_socket_check_connect(struct ucred *cred, struct socket *so, 82278007886SRobert Watson struct label *solabel, struct sockaddr *sa) 823d8a7b7a3SRobert Watson { 824d8a7b7a3SRobert Watson 825d8a7b7a3SRobert Watson return (0); 826d8a7b7a3SRobert Watson } 827d8a7b7a3SRobert Watson 828d8a7b7a3SRobert Watson static int 82930d239bcSRobert Watson stub_socket_check_create(struct ucred *cred, int domain, int type, int proto) 8306758f88eSRobert Watson { 8316758f88eSRobert Watson 8326758f88eSRobert Watson return (0); 8336758f88eSRobert Watson } 8346758f88eSRobert Watson 8356758f88eSRobert Watson static int 83630d239bcSRobert Watson stub_socket_check_deliver(struct socket *so, struct label *solabel, 83778007886SRobert Watson struct mbuf *m, struct label *mlabel) 838d8a7b7a3SRobert Watson { 839d8a7b7a3SRobert Watson 840d8a7b7a3SRobert Watson return (0); 841d8a7b7a3SRobert Watson } 842d8a7b7a3SRobert Watson 843d8a7b7a3SRobert Watson static int 84430d239bcSRobert Watson stub_socket_check_listen(struct ucred *cred, struct socket *so, 84578007886SRobert Watson struct label *solabel) 846d8a7b7a3SRobert Watson { 847d8a7b7a3SRobert Watson 848d8a7b7a3SRobert Watson return (0); 849d8a7b7a3SRobert Watson } 850d8a7b7a3SRobert Watson 851d8a7b7a3SRobert Watson static int 85230d239bcSRobert Watson stub_socket_check_poll(struct ucred *cred, struct socket *so, 85378007886SRobert Watson struct label *solabel) 8547f53207bSRobert Watson { 8557f53207bSRobert Watson 8567f53207bSRobert Watson return (0); 8577f53207bSRobert Watson } 8587f53207bSRobert Watson 8597f53207bSRobert Watson static int 86030d239bcSRobert Watson stub_socket_check_receive(struct ucred *cred, struct socket *so, 86178007886SRobert Watson struct label *solabel) 8627f53207bSRobert Watson { 8637f53207bSRobert Watson 8647f53207bSRobert Watson return (0); 8657f53207bSRobert Watson } 8667f53207bSRobert Watson 8677f53207bSRobert Watson static int 86830d239bcSRobert Watson stub_socket_check_relabel(struct ucred *cred, struct socket *so, 86978007886SRobert Watson struct label *solabel, struct label *newlabel) 870d8a7b7a3SRobert Watson { 871d8a7b7a3SRobert Watson 872d8a7b7a3SRobert Watson return (0); 873d8a7b7a3SRobert Watson } 8747f53207bSRobert Watson static int 87530d239bcSRobert Watson stub_socket_check_send(struct ucred *cred, struct socket *so, 87678007886SRobert Watson struct label *solabel) 8777f53207bSRobert Watson { 8787f53207bSRobert Watson 8797f53207bSRobert Watson return (0); 8807f53207bSRobert Watson } 8817f53207bSRobert Watson 8827f53207bSRobert Watson static int 88330d239bcSRobert Watson stub_socket_check_stat(struct ucred *cred, struct socket *so, 88478007886SRobert Watson struct label *solabel) 8857f53207bSRobert Watson { 8867f53207bSRobert Watson 8877f53207bSRobert Watson return (0); 8887f53207bSRobert Watson } 889d8a7b7a3SRobert Watson 890d8a7b7a3SRobert Watson static int 8917fb179baSBjoern A. Zeeb stub_inpcb_check_visible(struct ucred *cred, struct inpcb *inp, 8927fb179baSBjoern A. Zeeb struct label *inplabel) 8937fb179baSBjoern A. Zeeb { 8947fb179baSBjoern A. Zeeb 8957fb179baSBjoern A. Zeeb return (0); 8967fb179baSBjoern A. Zeeb } 8977fb179baSBjoern A. Zeeb 8987fb179baSBjoern A. Zeeb static int 89930d239bcSRobert Watson stub_socket_check_visible(struct ucred *cred, struct socket *so, 90078007886SRobert Watson struct label *solabel) 901d8a7b7a3SRobert Watson { 902d8a7b7a3SRobert Watson 903d8a7b7a3SRobert Watson return (0); 904d8a7b7a3SRobert Watson } 905d8a7b7a3SRobert Watson 906eb320b0eSRobert Watson static void 907eb320b0eSRobert Watson stub_socket_create(struct ucred *cred, struct socket *so, 908eb320b0eSRobert Watson struct label *solabel) 909eb320b0eSRobert Watson { 910eb320b0eSRobert Watson 911eb320b0eSRobert Watson } 912eb320b0eSRobert Watson 913eb320b0eSRobert Watson static void 914eb320b0eSRobert Watson stub_socket_create_mbuf(struct socket *so, struct label *solabel, 915eb320b0eSRobert Watson struct mbuf *m, struct label *mlabel) 916eb320b0eSRobert Watson { 917eb320b0eSRobert Watson 918eb320b0eSRobert Watson } 919eb320b0eSRobert Watson 920eb320b0eSRobert Watson static void 921eb320b0eSRobert Watson stub_socket_newconn(struct socket *oldso, struct label *oldsolabel, 922eb320b0eSRobert Watson struct socket *newso, struct label *newsolabel) 923eb320b0eSRobert Watson { 924eb320b0eSRobert Watson 925eb320b0eSRobert Watson } 926eb320b0eSRobert Watson 927eb320b0eSRobert Watson static void 928eb320b0eSRobert Watson stub_socket_relabel(struct ucred *cred, struct socket *so, 929eb320b0eSRobert Watson struct label *solabel, struct label *newlabel) 930eb320b0eSRobert Watson { 931eb320b0eSRobert Watson 932eb320b0eSRobert Watson } 933eb320b0eSRobert Watson 934eb320b0eSRobert Watson static void 935eb320b0eSRobert Watson stub_socketpeer_set_from_mbuf(struct mbuf *m, struct label *mlabel, 936eb320b0eSRobert Watson struct socket *so, struct label *sopeerlabel) 937eb320b0eSRobert Watson { 938eb320b0eSRobert Watson 939eb320b0eSRobert Watson } 940eb320b0eSRobert Watson 941eb320b0eSRobert Watson static void 942eb320b0eSRobert Watson stub_socketpeer_set_from_socket(struct socket *oldso, 943eb320b0eSRobert Watson struct label *oldsolabel, struct socket *newso, 944eb320b0eSRobert Watson struct label *newsopeerlabel) 945eb320b0eSRobert Watson { 946eb320b0eSRobert Watson 947eb320b0eSRobert Watson } 948eb320b0eSRobert Watson 949eb320b0eSRobert Watson static void 950eb320b0eSRobert Watson stub_syncache_create(struct label *label, struct inpcb *inp) 951eb320b0eSRobert Watson { 952eb320b0eSRobert Watson 953eb320b0eSRobert Watson } 954eb320b0eSRobert Watson 955eb320b0eSRobert Watson static void 956eb320b0eSRobert Watson stub_syncache_create_mbuf(struct label *sc_label, struct mbuf *m, 957eb320b0eSRobert Watson struct label *mlabel) 958eb320b0eSRobert Watson { 959eb320b0eSRobert Watson 960eb320b0eSRobert Watson } 961eb320b0eSRobert Watson 962d8a7b7a3SRobert Watson static int 96330d239bcSRobert Watson stub_system_check_acct(struct ucred *cred, struct vnode *vp, 96478007886SRobert Watson struct label *vplabel) 96509de2dc2SRobert Watson { 96609de2dc2SRobert Watson 96709de2dc2SRobert Watson return (0); 96809de2dc2SRobert Watson } 96909de2dc2SRobert Watson 97009de2dc2SRobert Watson static int 97130d239bcSRobert Watson stub_system_check_audit(struct ucred *cred, void *record, int length) 97218717f69SRobert Watson { 97318717f69SRobert Watson 97418717f69SRobert Watson return (0); 97518717f69SRobert Watson } 97618717f69SRobert Watson 97718717f69SRobert Watson static int 97830d239bcSRobert Watson stub_system_check_auditctl(struct ucred *cred, struct vnode *vp, 97978007886SRobert Watson struct label *vplabel) 98018717f69SRobert Watson { 98118717f69SRobert Watson 98218717f69SRobert Watson return (0); 98318717f69SRobert Watson } 98418717f69SRobert Watson 98518717f69SRobert Watson static int 98630d239bcSRobert Watson stub_system_check_auditon(struct ucred *cred, int cmd) 98718717f69SRobert Watson { 98818717f69SRobert Watson 98918717f69SRobert Watson return (0); 99018717f69SRobert Watson } 99118717f69SRobert Watson 99218717f69SRobert Watson static int 99330d239bcSRobert Watson stub_system_check_reboot(struct ucred *cred, int how) 994927f6069SRobert Watson { 995927f6069SRobert Watson 996927f6069SRobert Watson return (0); 997927f6069SRobert Watson } 998927f6069SRobert Watson 999927f6069SRobert Watson static int 100030d239bcSRobert Watson stub_system_check_swapoff(struct ucred *cred, struct vnode *vp, 100178007886SRobert Watson struct label *vplabel) 1002927f6069SRobert Watson { 1003927f6069SRobert Watson 1004927f6069SRobert Watson return (0); 1005927f6069SRobert Watson } 1006927f6069SRobert Watson 1007927f6069SRobert Watson static int 100830d239bcSRobert Watson stub_system_check_swapon(struct ucred *cred, struct vnode *vp, 100978007886SRobert Watson struct label *vplabel) 101009de2dc2SRobert Watson { 101109de2dc2SRobert Watson 101209de2dc2SRobert Watson return (0); 101309de2dc2SRobert Watson } 101409de2dc2SRobert Watson 101509de2dc2SRobert Watson static int 101630d239bcSRobert Watson stub_system_check_sysctl(struct ucred *cred, struct sysctl_oid *oidp, 101763dba32bSPawel Jakub Dawidek void *arg1, int arg2, struct sysctl_req *req) 1018927f6069SRobert Watson { 1019927f6069SRobert Watson 1020927f6069SRobert Watson return (0); 1021927f6069SRobert Watson } 1022927f6069SRobert Watson 1023eb320b0eSRobert Watson static void 1024eb320b0eSRobert Watson stub_sysvmsg_cleanup(struct label *msglabel) 1025eb320b0eSRobert Watson { 1026eb320b0eSRobert Watson 1027eb320b0eSRobert Watson } 1028eb320b0eSRobert Watson 1029eb320b0eSRobert Watson static void 1030eb320b0eSRobert Watson stub_sysvmsg_create(struct ucred *cred, struct msqid_kernel *msqkptr, 1031eb320b0eSRobert Watson struct label *msqlabel, struct msg *msgptr, struct label *msglabel) 1032eb320b0eSRobert Watson { 1033eb320b0eSRobert Watson 1034eb320b0eSRobert Watson } 1035eb320b0eSRobert Watson 1036eb320b0eSRobert Watson static int 1037eb320b0eSRobert Watson stub_sysvmsq_check_msgmsq(struct ucred *cred, struct msg *msgptr, 1038eb320b0eSRobert Watson struct label *msglabel, struct msqid_kernel *msqkptr, 1039eb320b0eSRobert Watson struct label *msqklabel) 1040eb320b0eSRobert Watson { 1041eb320b0eSRobert Watson 1042eb320b0eSRobert Watson return (0); 1043eb320b0eSRobert Watson } 1044eb320b0eSRobert Watson 1045eb320b0eSRobert Watson static int 1046eb320b0eSRobert Watson stub_sysvmsq_check_msgrcv(struct ucred *cred, struct msg *msgptr, 1047eb320b0eSRobert Watson struct label *msglabel) 1048eb320b0eSRobert Watson { 1049eb320b0eSRobert Watson 1050eb320b0eSRobert Watson return (0); 1051eb320b0eSRobert Watson } 1052eb320b0eSRobert Watson 1053eb320b0eSRobert Watson 1054eb320b0eSRobert Watson static int 1055eb320b0eSRobert Watson stub_sysvmsq_check_msgrmid(struct ucred *cred, struct msg *msgptr, 1056eb320b0eSRobert Watson struct label *msglabel) 1057eb320b0eSRobert Watson { 1058eb320b0eSRobert Watson 1059eb320b0eSRobert Watson return (0); 1060eb320b0eSRobert Watson } 1061eb320b0eSRobert Watson 1062eb320b0eSRobert Watson 1063eb320b0eSRobert Watson static int 1064eb320b0eSRobert Watson stub_sysvmsq_check_msqget(struct ucred *cred, struct msqid_kernel *msqkptr, 1065eb320b0eSRobert Watson struct label *msqklabel) 1066eb320b0eSRobert Watson { 1067eb320b0eSRobert Watson 1068eb320b0eSRobert Watson return (0); 1069eb320b0eSRobert Watson } 1070eb320b0eSRobert Watson 1071eb320b0eSRobert Watson 1072eb320b0eSRobert Watson static int 1073eb320b0eSRobert Watson stub_sysvmsq_check_msqsnd(struct ucred *cred, struct msqid_kernel *msqkptr, 1074eb320b0eSRobert Watson struct label *msqklabel) 1075eb320b0eSRobert Watson { 1076eb320b0eSRobert Watson 1077eb320b0eSRobert Watson return (0); 1078eb320b0eSRobert Watson } 1079eb320b0eSRobert Watson 1080eb320b0eSRobert Watson static int 1081eb320b0eSRobert Watson stub_sysvmsq_check_msqrcv(struct ucred *cred, struct msqid_kernel *msqkptr, 1082eb320b0eSRobert Watson struct label *msqklabel) 1083eb320b0eSRobert Watson { 1084eb320b0eSRobert Watson 1085eb320b0eSRobert Watson return (0); 1086eb320b0eSRobert Watson } 1087eb320b0eSRobert Watson 1088eb320b0eSRobert Watson 1089eb320b0eSRobert Watson static int 1090eb320b0eSRobert Watson stub_sysvmsq_check_msqctl(struct ucred *cred, struct msqid_kernel *msqkptr, 1091eb320b0eSRobert Watson struct label *msqklabel, int cmd) 1092eb320b0eSRobert Watson { 1093eb320b0eSRobert Watson 1094eb320b0eSRobert Watson return (0); 1095eb320b0eSRobert Watson } 1096eb320b0eSRobert Watson 1097eb320b0eSRobert Watson 1098eb320b0eSRobert Watson static void 1099eb320b0eSRobert Watson stub_sysvmsq_cleanup(struct label *msqlabel) 1100eb320b0eSRobert Watson { 1101eb320b0eSRobert Watson 1102eb320b0eSRobert Watson } 1103eb320b0eSRobert Watson 1104eb320b0eSRobert Watson static void 1105eb320b0eSRobert Watson stub_sysvmsq_create(struct ucred *cred, struct msqid_kernel *msqkptr, 1106eb320b0eSRobert Watson struct label *msqlabel) 1107eb320b0eSRobert Watson { 1108eb320b0eSRobert Watson 1109eb320b0eSRobert Watson } 1110eb320b0eSRobert Watson 1111eb320b0eSRobert Watson static int 1112eb320b0eSRobert Watson stub_sysvsem_check_semctl(struct ucred *cred, struct semid_kernel *semakptr, 1113eb320b0eSRobert Watson struct label *semaklabel, int cmd) 1114eb320b0eSRobert Watson { 1115eb320b0eSRobert Watson 1116eb320b0eSRobert Watson return (0); 1117eb320b0eSRobert Watson } 1118eb320b0eSRobert Watson 1119eb320b0eSRobert Watson static int 1120eb320b0eSRobert Watson stub_sysvsem_check_semget(struct ucred *cred, struct semid_kernel *semakptr, 1121eb320b0eSRobert Watson struct label *semaklabel) 1122eb320b0eSRobert Watson { 1123eb320b0eSRobert Watson 1124eb320b0eSRobert Watson return (0); 1125eb320b0eSRobert Watson } 1126eb320b0eSRobert Watson 1127eb320b0eSRobert Watson 1128eb320b0eSRobert Watson static int 1129eb320b0eSRobert Watson stub_sysvsem_check_semop(struct ucred *cred, struct semid_kernel *semakptr, 1130eb320b0eSRobert Watson struct label *semaklabel, size_t accesstype) 1131eb320b0eSRobert Watson { 1132eb320b0eSRobert Watson 1133eb320b0eSRobert Watson return (0); 1134eb320b0eSRobert Watson } 1135eb320b0eSRobert Watson 1136eb320b0eSRobert Watson static void 1137eb320b0eSRobert Watson stub_sysvsem_cleanup(struct label *semalabel) 1138eb320b0eSRobert Watson { 1139eb320b0eSRobert Watson 1140eb320b0eSRobert Watson } 1141eb320b0eSRobert Watson 1142eb320b0eSRobert Watson static void 1143eb320b0eSRobert Watson stub_sysvsem_create(struct ucred *cred, struct semid_kernel *semakptr, 1144eb320b0eSRobert Watson struct label *semalabel) 1145eb320b0eSRobert Watson { 1146eb320b0eSRobert Watson 1147eb320b0eSRobert Watson } 1148eb320b0eSRobert Watson 1149eb320b0eSRobert Watson static int 1150eb320b0eSRobert Watson stub_sysvshm_check_shmat(struct ucred *cred, struct shmid_kernel *shmsegptr, 1151eb320b0eSRobert Watson struct label *shmseglabel, int shmflg) 1152eb320b0eSRobert Watson { 1153eb320b0eSRobert Watson 1154eb320b0eSRobert Watson return (0); 1155eb320b0eSRobert Watson } 1156eb320b0eSRobert Watson 1157eb320b0eSRobert Watson static int 1158eb320b0eSRobert Watson stub_sysvshm_check_shmctl(struct ucred *cred, struct shmid_kernel *shmsegptr, 1159eb320b0eSRobert Watson struct label *shmseglabel, int cmd) 1160eb320b0eSRobert Watson { 1161eb320b0eSRobert Watson 1162eb320b0eSRobert Watson return (0); 1163eb320b0eSRobert Watson } 1164eb320b0eSRobert Watson 1165eb320b0eSRobert Watson static int 1166eb320b0eSRobert Watson stub_sysvshm_check_shmdt(struct ucred *cred, struct shmid_kernel *shmsegptr, 1167eb320b0eSRobert Watson struct label *shmseglabel) 1168eb320b0eSRobert Watson { 1169eb320b0eSRobert Watson 1170eb320b0eSRobert Watson return (0); 1171eb320b0eSRobert Watson } 1172eb320b0eSRobert Watson 1173eb320b0eSRobert Watson 1174eb320b0eSRobert Watson static int 1175eb320b0eSRobert Watson stub_sysvshm_check_shmget(struct ucred *cred, struct shmid_kernel *shmsegptr, 1176eb320b0eSRobert Watson struct label *shmseglabel, int shmflg) 1177eb320b0eSRobert Watson { 1178eb320b0eSRobert Watson 1179eb320b0eSRobert Watson return (0); 1180eb320b0eSRobert Watson } 1181eb320b0eSRobert Watson 1182eb320b0eSRobert Watson static void 1183eb320b0eSRobert Watson stub_sysvshm_cleanup(struct label *shmlabel) 1184eb320b0eSRobert Watson { 1185eb320b0eSRobert Watson 1186eb320b0eSRobert Watson } 1187eb320b0eSRobert Watson 1188eb320b0eSRobert Watson static void 1189eb320b0eSRobert Watson stub_sysvshm_create(struct ucred *cred, struct shmid_kernel *shmsegptr, 1190eb320b0eSRobert Watson struct label *shmalabel) 1191eb320b0eSRobert Watson { 1192eb320b0eSRobert Watson 1193eb320b0eSRobert Watson } 1194eb320b0eSRobert Watson 1195eb320b0eSRobert Watson static void 1196eb320b0eSRobert Watson stub_thread_userret(struct thread *td) 1197eb320b0eSRobert Watson { 1198eb320b0eSRobert Watson 1199eb320b0eSRobert Watson } 1200eb320b0eSRobert Watson 1201eb320b0eSRobert Watson static int 1202eb320b0eSRobert Watson stub_vnode_associate_extattr(struct mount *mp, struct label *mplabel, 1203eb320b0eSRobert Watson struct vnode *vp, struct label *vplabel) 1204eb320b0eSRobert Watson { 1205eb320b0eSRobert Watson 1206eb320b0eSRobert Watson return (0); 1207eb320b0eSRobert Watson } 1208eb320b0eSRobert Watson 1209eb320b0eSRobert Watson static void 1210eb320b0eSRobert Watson stub_vnode_associate_singlelabel(struct mount *mp, struct label *mplabel, 1211eb320b0eSRobert Watson struct vnode *vp, struct label *vplabel) 1212eb320b0eSRobert Watson { 1213eb320b0eSRobert Watson 1214eb320b0eSRobert Watson } 1215eb320b0eSRobert Watson 1216d8a7b7a3SRobert Watson static int 12175077415aSRobert Watson stub_vnode_check_access(struct ucred *cred, struct vnode *vp, 12185077415aSRobert Watson struct label *vplabel, int acc_mode) 12195077415aSRobert Watson { 12205077415aSRobert Watson 12215077415aSRobert Watson return (0); 12225077415aSRobert Watson } 12235077415aSRobert Watson 12245077415aSRobert Watson static int 12255077415aSRobert Watson stub_vnode_check_chdir(struct ucred *cred, struct vnode *dvp, 12265077415aSRobert Watson struct label *dvplabel) 12275077415aSRobert Watson { 12285077415aSRobert Watson 12295077415aSRobert Watson return (0); 12305077415aSRobert Watson } 12315077415aSRobert Watson 12325077415aSRobert Watson static int 12335077415aSRobert Watson stub_vnode_check_chroot(struct ucred *cred, struct vnode *dvp, 12345077415aSRobert Watson struct label *dvplabel) 12355077415aSRobert Watson { 12365077415aSRobert Watson 12375077415aSRobert Watson return (0); 12385077415aSRobert Watson } 12395077415aSRobert Watson 12405077415aSRobert Watson static int 12415077415aSRobert Watson stub_vnode_check_create(struct ucred *cred, struct vnode *dvp, 12425077415aSRobert Watson struct label *dvplabel, struct componentname *cnp, struct vattr *vap) 12435077415aSRobert Watson { 12445077415aSRobert Watson 12455077415aSRobert Watson return (0); 12465077415aSRobert Watson } 12475077415aSRobert Watson 12485077415aSRobert Watson static int 124930d239bcSRobert Watson stub_vnode_check_deleteacl(struct ucred *cred, struct vnode *vp, 125078007886SRobert Watson struct label *vplabel, acl_type_t type) 1251d8a7b7a3SRobert Watson { 1252d8a7b7a3SRobert Watson 1253d8a7b7a3SRobert Watson return (0); 1254d8a7b7a3SRobert Watson } 1255d8a7b7a3SRobert Watson 1256d8a7b7a3SRobert Watson static int 125730d239bcSRobert Watson stub_vnode_check_deleteextattr(struct ucred *cred, struct vnode *vp, 125878007886SRobert Watson struct label *vplabel, int attrnamespace, const char *name) 125964f00af8SRobert Watson { 126064f00af8SRobert Watson 126164f00af8SRobert Watson return (0); 126264f00af8SRobert Watson } 126364f00af8SRobert Watson 126464f00af8SRobert Watson static int 126530d239bcSRobert Watson stub_vnode_check_exec(struct ucred *cred, struct vnode *vp, 126678007886SRobert Watson struct label *vplabel, struct image_params *imgp, 1267ef5def59SRobert Watson struct label *execlabel) 1268d8a7b7a3SRobert Watson { 1269d8a7b7a3SRobert Watson 1270d8a7b7a3SRobert Watson return (0); 1271d8a7b7a3SRobert Watson } 1272d8a7b7a3SRobert Watson 1273d8a7b7a3SRobert Watson static int 127430d239bcSRobert Watson stub_vnode_check_getacl(struct ucred *cred, struct vnode *vp, 127578007886SRobert Watson struct label *vplabel, acl_type_t type) 1276d8a7b7a3SRobert Watson { 1277d8a7b7a3SRobert Watson 1278d8a7b7a3SRobert Watson return (0); 1279d8a7b7a3SRobert Watson } 1280d8a7b7a3SRobert Watson 1281d8a7b7a3SRobert Watson static int 128230d239bcSRobert Watson stub_vnode_check_getextattr(struct ucred *cred, struct vnode *vp, 128378007886SRobert Watson struct label *vplabel, int attrnamespace, const char *name, 128478007886SRobert Watson struct uio *uio) 1285d8a7b7a3SRobert Watson { 1286d8a7b7a3SRobert Watson 1287d8a7b7a3SRobert Watson return (0); 1288d8a7b7a3SRobert Watson } 1289d8a7b7a3SRobert Watson 1290d8a7b7a3SRobert Watson static int 129130d239bcSRobert Watson stub_vnode_check_link(struct ucred *cred, struct vnode *dvp, 129278007886SRobert Watson struct label *dvplabel, struct vnode *vp, struct label *vplabel, 1293c27b50f5SRobert Watson struct componentname *cnp) 1294c27b50f5SRobert Watson { 1295c27b50f5SRobert Watson 1296c27b50f5SRobert Watson return (0); 1297c27b50f5SRobert Watson } 1298c27b50f5SRobert Watson 1299c27b50f5SRobert Watson static int 130030d239bcSRobert Watson stub_vnode_check_listextattr(struct ucred *cred, struct vnode *vp, 130178007886SRobert Watson struct label *vplabel, int attrnamespace) 130264f00af8SRobert Watson { 130364f00af8SRobert Watson 130464f00af8SRobert Watson return (0); 130564f00af8SRobert Watson } 130664f00af8SRobert Watson 130764f00af8SRobert Watson static int 130830d239bcSRobert Watson stub_vnode_check_lookup(struct ucred *cred, struct vnode *dvp, 130978007886SRobert Watson struct label *dvplabel, struct componentname *cnp) 1310d8a7b7a3SRobert Watson { 1311d8a7b7a3SRobert Watson 1312d8a7b7a3SRobert Watson return (0); 1313d8a7b7a3SRobert Watson } 1314d8a7b7a3SRobert Watson 1315d8a7b7a3SRobert Watson static int 131630d239bcSRobert Watson stub_vnode_check_mmap(struct ucred *cred, struct vnode *vp, 131778007886SRobert Watson struct label *vplabel, int prot, int flags) 1318e183f80eSRobert Watson { 1319e183f80eSRobert Watson 1320e183f80eSRobert Watson return (0); 1321e183f80eSRobert Watson } 1322e183f80eSRobert Watson 132317870c06SChristian S.J. Peron static void 132430d239bcSRobert Watson stub_vnode_check_mmap_downgrade(struct ucred *cred, struct vnode *vp, 132578007886SRobert Watson struct label *vplabel, int *prot) 132617870c06SChristian S.J. Peron { 132717870c06SChristian S.J. Peron 132817870c06SChristian S.J. Peron } 132917870c06SChristian S.J. Peron 133017870c06SChristian S.J. Peron static int 133130d239bcSRobert Watson stub_vnode_check_mprotect(struct ucred *cred, struct vnode *vp, 133278007886SRobert Watson struct label *vplabel, int prot) 133317870c06SChristian S.J. Peron { 133417870c06SChristian S.J. Peron 133517870c06SChristian S.J. Peron return (0); 133617870c06SChristian S.J. Peron } 133717870c06SChristian S.J. Peron 1338e183f80eSRobert Watson static int 133930d239bcSRobert Watson stub_vnode_check_open(struct ucred *cred, struct vnode *vp, 134078007886SRobert Watson struct label *vplabel, int acc_mode) 1341d8a7b7a3SRobert Watson { 1342d8a7b7a3SRobert Watson 1343d8a7b7a3SRobert Watson return (0); 1344d8a7b7a3SRobert Watson } 1345d8a7b7a3SRobert Watson 1346d8a7b7a3SRobert Watson static int 134730d239bcSRobert Watson stub_vnode_check_poll(struct ucred *active_cred, struct ucred *file_cred, 134878007886SRobert Watson struct vnode *vp, struct label *vplabel) 13497f724f8bSRobert Watson { 13507f724f8bSRobert Watson 13517f724f8bSRobert Watson return (0); 13527f724f8bSRobert Watson } 13537f724f8bSRobert Watson 13547f724f8bSRobert Watson static int 135530d239bcSRobert Watson stub_vnode_check_read(struct ucred *active_cred, struct ucred *file_cred, 135678007886SRobert Watson struct vnode *vp, struct label *vplabel) 13577f724f8bSRobert Watson { 13587f724f8bSRobert Watson 13597f724f8bSRobert Watson return (0); 13607f724f8bSRobert Watson } 13617f724f8bSRobert Watson 13627f724f8bSRobert Watson static int 136330d239bcSRobert Watson stub_vnode_check_readdir(struct ucred *cred, struct vnode *vp, 136478007886SRobert Watson struct label *dvplabel) 1365d8a7b7a3SRobert Watson { 1366d8a7b7a3SRobert Watson 1367d8a7b7a3SRobert Watson return (0); 1368d8a7b7a3SRobert Watson } 1369d8a7b7a3SRobert Watson 1370d8a7b7a3SRobert Watson static int 137130d239bcSRobert Watson stub_vnode_check_readlink(struct ucred *cred, struct vnode *vp, 137278007886SRobert Watson struct label *vplabel) 1373d8a7b7a3SRobert Watson { 1374d8a7b7a3SRobert Watson 1375d8a7b7a3SRobert Watson return (0); 1376d8a7b7a3SRobert Watson } 1377d8a7b7a3SRobert Watson 1378d8a7b7a3SRobert Watson static int 137930d239bcSRobert Watson stub_vnode_check_relabel(struct ucred *cred, struct vnode *vp, 138078007886SRobert Watson struct label *vplabel, struct label *newlabel) 1381d8a7b7a3SRobert Watson { 1382d8a7b7a3SRobert Watson 1383d8a7b7a3SRobert Watson return (0); 1384d8a7b7a3SRobert Watson } 1385d8a7b7a3SRobert Watson 1386d8a7b7a3SRobert Watson static int 138730d239bcSRobert Watson stub_vnode_check_rename_from(struct ucred *cred, struct vnode *dvp, 138878007886SRobert Watson struct label *dvplabel, struct vnode *vp, struct label *vplabel, 1389d8a7b7a3SRobert Watson struct componentname *cnp) 1390d8a7b7a3SRobert Watson { 1391d8a7b7a3SRobert Watson 1392d8a7b7a3SRobert Watson return (0); 1393d8a7b7a3SRobert Watson } 1394d8a7b7a3SRobert Watson 1395d8a7b7a3SRobert Watson static int 139630d239bcSRobert Watson stub_vnode_check_rename_to(struct ucred *cred, struct vnode *dvp, 139778007886SRobert Watson struct label *dvplabel, struct vnode *vp, struct label *vplabel, 139878007886SRobert Watson int samedir, struct componentname *cnp) 1399d8a7b7a3SRobert Watson { 1400d8a7b7a3SRobert Watson 1401d8a7b7a3SRobert Watson return (0); 1402d8a7b7a3SRobert Watson } 1403d8a7b7a3SRobert Watson 1404d8a7b7a3SRobert Watson static int 140530d239bcSRobert Watson stub_vnode_check_revoke(struct ucred *cred, struct vnode *vp, 140678007886SRobert Watson struct label *vplabel) 1407d8a7b7a3SRobert Watson { 1408d8a7b7a3SRobert Watson 1409d8a7b7a3SRobert Watson return (0); 1410d8a7b7a3SRobert Watson } 1411d8a7b7a3SRobert Watson 1412d8a7b7a3SRobert Watson static int 141330d239bcSRobert Watson stub_vnode_check_setacl(struct ucred *cred, struct vnode *vp, 141478007886SRobert Watson struct label *vplabel, acl_type_t type, struct acl *acl) 1415d8a7b7a3SRobert Watson { 1416d8a7b7a3SRobert Watson 1417d8a7b7a3SRobert Watson return (0); 1418d8a7b7a3SRobert Watson } 1419d8a7b7a3SRobert Watson 1420d8a7b7a3SRobert Watson static int 142130d239bcSRobert Watson stub_vnode_check_setextattr(struct ucred *cred, struct vnode *vp, 142278007886SRobert Watson struct label *vplabel, int attrnamespace, const char *name, 142378007886SRobert Watson struct uio *uio) 1424d8a7b7a3SRobert Watson { 1425d8a7b7a3SRobert Watson 1426d8a7b7a3SRobert Watson return (0); 1427d8a7b7a3SRobert Watson } 1428d8a7b7a3SRobert Watson 1429d8a7b7a3SRobert Watson static int 143030d239bcSRobert Watson stub_vnode_check_setflags(struct ucred *cred, struct vnode *vp, 143178007886SRobert Watson struct label *vplabel, u_long flags) 1432d8a7b7a3SRobert Watson { 1433d8a7b7a3SRobert Watson 1434d8a7b7a3SRobert Watson return (0); 1435d8a7b7a3SRobert Watson } 1436d8a7b7a3SRobert Watson 1437d8a7b7a3SRobert Watson static int 143830d239bcSRobert Watson stub_vnode_check_setmode(struct ucred *cred, struct vnode *vp, 143978007886SRobert Watson struct label *vplabel, mode_t mode) 1440d8a7b7a3SRobert Watson { 1441d8a7b7a3SRobert Watson 1442d8a7b7a3SRobert Watson return (0); 1443d8a7b7a3SRobert Watson } 1444d8a7b7a3SRobert Watson 1445d8a7b7a3SRobert Watson static int 144630d239bcSRobert Watson stub_vnode_check_setowner(struct ucred *cred, struct vnode *vp, 144778007886SRobert Watson struct label *vplabel, uid_t uid, gid_t gid) 1448d8a7b7a3SRobert Watson { 1449d8a7b7a3SRobert Watson 1450d8a7b7a3SRobert Watson return (0); 1451d8a7b7a3SRobert Watson } 1452d8a7b7a3SRobert Watson 1453d8a7b7a3SRobert Watson static int 145430d239bcSRobert Watson stub_vnode_check_setutimes(struct ucred *cred, struct vnode *vp, 145578007886SRobert Watson struct label *vplabel, struct timespec atime, struct timespec mtime) 1456d8a7b7a3SRobert Watson { 1457d8a7b7a3SRobert Watson 1458d8a7b7a3SRobert Watson return (0); 1459d8a7b7a3SRobert Watson } 1460d8a7b7a3SRobert Watson 1461d8a7b7a3SRobert Watson static int 146230d239bcSRobert Watson stub_vnode_check_stat(struct ucred *active_cred, struct ucred *file_cred, 146378007886SRobert Watson struct vnode *vp, struct label *vplabel) 1464d8a7b7a3SRobert Watson { 1465d8a7b7a3SRobert Watson 1466d8a7b7a3SRobert Watson return (0); 1467d8a7b7a3SRobert Watson } 1468d8a7b7a3SRobert Watson 14697f724f8bSRobert Watson static int 147030d239bcSRobert Watson stub_vnode_check_unlink(struct ucred *cred, struct vnode *dvp, 147145e0f3d6SRobert Watson struct label *dvplabel, struct vnode *vp, struct label *vplabel, 147245e0f3d6SRobert Watson struct componentname *cnp) 147345e0f3d6SRobert Watson { 147445e0f3d6SRobert Watson 147545e0f3d6SRobert Watson return (0); 147645e0f3d6SRobert Watson } 147745e0f3d6SRobert Watson 147845e0f3d6SRobert Watson static int 147930d239bcSRobert Watson stub_vnode_check_write(struct ucred *active_cred, struct ucred *file_cred, 148078007886SRobert Watson struct vnode *vp, struct label *vplabel) 14817f724f8bSRobert Watson { 14827f724f8bSRobert Watson 14837f724f8bSRobert Watson return (0); 14847f724f8bSRobert Watson } 14857f724f8bSRobert Watson 1486403b781eSRobert Watson static int 1487eb320b0eSRobert Watson stub_vnode_create_extattr(struct ucred *cred, struct mount *mp, 1488eb320b0eSRobert Watson struct label *mntlabel, struct vnode *dvp, struct label *dvplabel, 1489eb320b0eSRobert Watson struct vnode *vp, struct label *vplabel, struct componentname *cnp) 1490403b781eSRobert Watson { 1491403b781eSRobert Watson 1492403b781eSRobert Watson return (0); 1493403b781eSRobert Watson } 1494403b781eSRobert Watson 1495eb320b0eSRobert Watson static void 1496eb320b0eSRobert Watson stub_vnode_execve_transition(struct ucred *old, struct ucred *new, 1497eb320b0eSRobert Watson struct vnode *vp, struct label *vplabel, struct label *interpvplabel, 1498eb320b0eSRobert Watson struct image_params *imgp, struct label *execlabel) 1499403b781eSRobert Watson { 1500403b781eSRobert Watson 1501403b781eSRobert Watson } 1502403b781eSRobert Watson 1503eb320b0eSRobert Watson static int 1504eb320b0eSRobert Watson stub_vnode_execve_will_transition(struct ucred *old, struct vnode *vp, 1505eb320b0eSRobert Watson struct label *vplabel, struct label *interpvplabel, 1506eb320b0eSRobert Watson struct image_params *imgp, struct label *execlabel) 1507eb320b0eSRobert Watson { 1508eb320b0eSRobert Watson 1509eb320b0eSRobert Watson return (0); 1510eb320b0eSRobert Watson } 1511eb320b0eSRobert Watson 1512eb320b0eSRobert Watson static void 1513eb320b0eSRobert Watson stub_vnode_relabel(struct ucred *cred, struct vnode *vp, 1514eb320b0eSRobert Watson struct label *vplabel, struct label *label) 1515eb320b0eSRobert Watson { 1516eb320b0eSRobert Watson 1517eb320b0eSRobert Watson } 1518eb320b0eSRobert Watson 1519eb320b0eSRobert Watson static int 1520eb320b0eSRobert Watson stub_vnode_setlabel_extattr(struct ucred *cred, struct vnode *vp, 1521eb320b0eSRobert Watson struct label *vplabel, struct label *intlabel) 1522eb320b0eSRobert Watson { 1523eb320b0eSRobert Watson 1524eb320b0eSRobert Watson return (0); 1525eb320b0eSRobert Watson } 1526eb320b0eSRobert Watson 1527eb320b0eSRobert Watson /* 1528eb320b0eSRobert Watson * Register functions with MAC Framework policy entry points. 1529eb320b0eSRobert Watson */ 15303f1a7a90SRobert Watson static struct mac_policy_ops stub_ops = 1531d8a7b7a3SRobert Watson { 15321c3f91cdSRobert Watson .mpo_destroy = stub_destroy, 15331c3f91cdSRobert Watson .mpo_init = stub_init, 15341c3f91cdSRobert Watson .mpo_syscall = stub_syscall, 1535eb320b0eSRobert Watson 1536eb320b0eSRobert Watson .mpo_bpfdesc_check_receive = stub_bpfdesc_check_receive, 1537eb320b0eSRobert Watson .mpo_bpfdesc_create = stub_bpfdesc_create, 1538eb320b0eSRobert Watson .mpo_bpfdesc_create_mbuf = stub_bpfdesc_create_mbuf, 153930d239bcSRobert Watson .mpo_bpfdesc_destroy_label = stub_destroy_label, 1540eb320b0eSRobert Watson .mpo_bpfdesc_init_label = stub_init_label, 1541eb320b0eSRobert Watson 1542212ab0cfSRobert Watson .mpo_cred_associate_nfsd = stub_cred_associate_nfsd, 1543eb320b0eSRobert Watson .mpo_cred_check_relabel = stub_cred_check_relabel, 1544eb320b0eSRobert Watson .mpo_cred_check_visible = stub_cred_check_visible, 154530d239bcSRobert Watson .mpo_cred_copy_label = stub_copy_label, 1546212ab0cfSRobert Watson .mpo_cred_create_init = stub_cred_create_init, 1547212ab0cfSRobert Watson .mpo_cred_create_swapper = stub_cred_create_swapper, 1548eb320b0eSRobert Watson .mpo_cred_destroy_label = stub_destroy_label, 154930d239bcSRobert Watson .mpo_cred_externalize_label = stub_externalize_label, 1550eb320b0eSRobert Watson .mpo_cred_init_label = stub_init_label, 155130d239bcSRobert Watson .mpo_cred_internalize_label = stub_internalize_label, 1552eb320b0eSRobert Watson .mpo_cred_relabel= stub_cred_relabel, 1553eb320b0eSRobert Watson 155430d239bcSRobert Watson .mpo_devfs_create_device = stub_devfs_create_device, 155530d239bcSRobert Watson .mpo_devfs_create_directory = stub_devfs_create_directory, 155630d239bcSRobert Watson .mpo_devfs_create_symlink = stub_devfs_create_symlink, 1557eb320b0eSRobert Watson .mpo_devfs_destroy_label = stub_destroy_label, 1558eb320b0eSRobert Watson .mpo_devfs_init_label = stub_init_label, 155930d239bcSRobert Watson .mpo_devfs_update = stub_devfs_update, 1560eb320b0eSRobert Watson .mpo_devfs_vnode_associate = stub_devfs_vnode_associate, 1561eb320b0eSRobert Watson 156230d239bcSRobert Watson .mpo_ifnet_check_relabel = stub_ifnet_check_relabel, 156330d239bcSRobert Watson .mpo_ifnet_check_transmit = stub_ifnet_check_transmit, 1564eb320b0eSRobert Watson .mpo_ifnet_copy_label = stub_copy_label, 1565eb320b0eSRobert Watson .mpo_ifnet_create = stub_ifnet_create, 1566eb320b0eSRobert Watson .mpo_ifnet_create_mbuf = stub_ifnet_create_mbuf, 1567eb320b0eSRobert Watson .mpo_ifnet_destroy_label = stub_destroy_label, 1568eb320b0eSRobert Watson .mpo_ifnet_externalize_label = stub_externalize_label, 1569eb320b0eSRobert Watson .mpo_ifnet_init_label = stub_init_label, 1570eb320b0eSRobert Watson .mpo_ifnet_internalize_label = stub_internalize_label, 1571eb320b0eSRobert Watson .mpo_ifnet_relabel = stub_ifnet_relabel, 1572eb320b0eSRobert Watson 157330d239bcSRobert Watson .mpo_inpcb_check_deliver = stub_inpcb_check_deliver, 15747fb179baSBjoern A. Zeeb .mpo_inpcb_check_visible = stub_inpcb_check_visible, 1575eb320b0eSRobert Watson .mpo_inpcb_create = stub_inpcb_create, 1576eb320b0eSRobert Watson .mpo_inpcb_create_mbuf = stub_inpcb_create_mbuf, 1577eb320b0eSRobert Watson .mpo_inpcb_destroy_label = stub_destroy_label, 1578eb320b0eSRobert Watson .mpo_inpcb_init_label = stub_init_label_waitcheck, 1579eb320b0eSRobert Watson .mpo_inpcb_sosetlabel = stub_inpcb_sosetlabel, 1580eb320b0eSRobert Watson 1581048e1287SRobert Watson .mpo_ip6q_create = stub_ip6q_create, 1582048e1287SRobert Watson .mpo_ip6q_destroy_label = stub_destroy_label, 1583048e1287SRobert Watson .mpo_ip6q_init_label = stub_init_label_waitcheck, 1584048e1287SRobert Watson .mpo_ip6q_match = stub_ip6q_match, 1585048e1287SRobert Watson .mpo_ip6q_update = stub_ip6q_update, 1586048e1287SRobert Watson .mpo_ip6q_reassemble = stub_ip6q_reassemble, 1587048e1287SRobert Watson 1588eb320b0eSRobert Watson .mpo_ipq_create = stub_ipq_create, 1589eb320b0eSRobert Watson .mpo_ipq_destroy_label = stub_destroy_label, 1590eb320b0eSRobert Watson .mpo_ipq_init_label = stub_init_label_waitcheck, 1591eb320b0eSRobert Watson .mpo_ipq_match = stub_ipq_match, 1592eb320b0eSRobert Watson .mpo_ipq_update = stub_ipq_update, 1593eb320b0eSRobert Watson .mpo_ipq_reassemble = stub_ipq_reassemble, 1594eb320b0eSRobert Watson 159530d239bcSRobert Watson .mpo_kenv_check_dump = stub_kenv_check_dump, 159630d239bcSRobert Watson .mpo_kenv_check_get = stub_kenv_check_get, 159730d239bcSRobert Watson .mpo_kenv_check_set = stub_kenv_check_set, 159830d239bcSRobert Watson .mpo_kenv_check_unset = stub_kenv_check_unset, 1599eb320b0eSRobert Watson 160030d239bcSRobert Watson .mpo_kld_check_load = stub_kld_check_load, 160130d239bcSRobert Watson .mpo_kld_check_stat = stub_kld_check_stat, 1602eb320b0eSRobert Watson 1603eb320b0eSRobert Watson .mpo_mbuf_copy_label = stub_copy_label, 1604eb320b0eSRobert Watson .mpo_mbuf_destroy_label = stub_destroy_label, 1605eb320b0eSRobert Watson .mpo_mbuf_init_label = stub_init_label_waitcheck, 1606eb320b0eSRobert Watson 160730d239bcSRobert Watson .mpo_mount_check_stat = stub_mount_check_stat, 1608eb320b0eSRobert Watson .mpo_mount_create = stub_mount_create, 1609eb320b0eSRobert Watson .mpo_mount_destroy_label = stub_destroy_label, 1610eb320b0eSRobert Watson .mpo_mount_init_label = stub_init_label, 1611eb320b0eSRobert Watson 1612eb320b0eSRobert Watson .mpo_netatalk_aarp_send = stub_netatalk_aarp_send, 1613eb320b0eSRobert Watson 1614eb320b0eSRobert Watson .mpo_netinet_arp_send = stub_netinet_arp_send, 1615eb320b0eSRobert Watson .mpo_netinet_firewall_reply = stub_netinet_firewall_reply, 1616eb320b0eSRobert Watson .mpo_netinet_firewall_send = stub_netinet_firewall_send, 1617eb320b0eSRobert Watson .mpo_netinet_fragment = stub_netinet_fragment, 1618eb320b0eSRobert Watson .mpo_netinet_icmp_reply = stub_netinet_icmp_reply, 1619eb320b0eSRobert Watson .mpo_netinet_icmp_replyinplace = stub_netinet_icmp_replyinplace, 1620eb320b0eSRobert Watson .mpo_netinet_tcp_reply = stub_netinet_tcp_reply, 1621eb320b0eSRobert Watson .mpo_netinet_igmp_send = stub_netinet_igmp_send, 1622eb320b0eSRobert Watson 1623eb320b0eSRobert Watson .mpo_netinet6_nd6_send = stub_netinet6_nd6_send, 1624eb320b0eSRobert Watson 162530d239bcSRobert Watson .mpo_pipe_check_ioctl = stub_pipe_check_ioctl, 162630d239bcSRobert Watson .mpo_pipe_check_poll = stub_pipe_check_poll, 162730d239bcSRobert Watson .mpo_pipe_check_read = stub_pipe_check_read, 162830d239bcSRobert Watson .mpo_pipe_check_relabel = stub_pipe_check_relabel, 162930d239bcSRobert Watson .mpo_pipe_check_stat = stub_pipe_check_stat, 163030d239bcSRobert Watson .mpo_pipe_check_write = stub_pipe_check_write, 1631eb320b0eSRobert Watson .mpo_pipe_copy_label = stub_copy_label, 1632eb320b0eSRobert Watson .mpo_pipe_create = stub_pipe_create, 1633eb320b0eSRobert Watson .mpo_pipe_destroy_label = stub_destroy_label, 1634eb320b0eSRobert Watson .mpo_pipe_externalize_label = stub_externalize_label, 1635eb320b0eSRobert Watson .mpo_pipe_init_label = stub_init_label, 1636eb320b0eSRobert Watson .mpo_pipe_internalize_label = stub_internalize_label, 1637eb320b0eSRobert Watson .mpo_pipe_relabel = stub_pipe_relabel, 1638eb320b0eSRobert Watson 163930d239bcSRobert Watson .mpo_posixsem_check_getvalue = stub_posixsem_check_getvalue, 164030d239bcSRobert Watson .mpo_posixsem_check_open = stub_posixsem_check_open, 164130d239bcSRobert Watson .mpo_posixsem_check_post = stub_posixsem_check_post, 16426bc1e9cdSJohn Baldwin .mpo_posixsem_check_stat = stub_posixsem_check_stat, 164330d239bcSRobert Watson .mpo_posixsem_check_unlink = stub_posixsem_check_unlink, 164430d239bcSRobert Watson .mpo_posixsem_check_wait = stub_posixsem_check_wait, 1645eb320b0eSRobert Watson .mpo_posixsem_create = stub_posixsem_create, 1646eb320b0eSRobert Watson .mpo_posixsem_destroy_label = stub_destroy_label, 1647eb320b0eSRobert Watson .mpo_posixsem_init_label = stub_init_label, 1648eb320b0eSRobert Watson 16498e38aeffSJohn Baldwin .mpo_posixshm_check_mmap = stub_posixshm_check_mmap, 16508e38aeffSJohn Baldwin .mpo_posixshm_check_open = stub_posixshm_check_open, 16518e38aeffSJohn Baldwin .mpo_posixshm_check_stat = stub_posixshm_check_stat, 16528e38aeffSJohn Baldwin .mpo_posixshm_check_truncate = stub_posixshm_check_truncate, 16538e38aeffSJohn Baldwin .mpo_posixshm_check_unlink = stub_posixshm_check_unlink, 16548e38aeffSJohn Baldwin .mpo_posixshm_create = stub_posixshm_create, 16558e38aeffSJohn Baldwin .mpo_posixshm_destroy_label = stub_destroy_label, 16568e38aeffSJohn Baldwin .mpo_posixshm_init_label = stub_init_label, 16578e38aeffSJohn Baldwin 1658eb320b0eSRobert Watson .mpo_priv_check = stub_priv_check, 1659eb320b0eSRobert Watson .mpo_priv_grant = stub_priv_grant, 1660eb320b0eSRobert Watson 166130d239bcSRobert Watson .mpo_proc_check_debug = stub_proc_check_debug, 166230d239bcSRobert Watson .mpo_proc_check_sched = stub_proc_check_sched, 166330d239bcSRobert Watson .mpo_proc_check_setaudit = stub_proc_check_setaudit, 166430d239bcSRobert Watson .mpo_proc_check_setaudit_addr = stub_proc_check_setaudit_addr, 166530d239bcSRobert Watson .mpo_proc_check_setauid = stub_proc_check_setauid, 1666eb320b0eSRobert Watson .mpo_proc_check_setegid = stub_proc_check_setegid, 166730d239bcSRobert Watson .mpo_proc_check_seteuid = stub_proc_check_seteuid, 166830d239bcSRobert Watson .mpo_proc_check_setgid = stub_proc_check_setgid, 166930d239bcSRobert Watson .mpo_proc_check_setgroups = stub_proc_check_setgroups, 167030d239bcSRobert Watson .mpo_proc_check_setregid = stub_proc_check_setregid, 167130d239bcSRobert Watson .mpo_proc_check_setresgid = stub_proc_check_setresgid, 1672eb320b0eSRobert Watson .mpo_proc_check_setresuid = stub_proc_check_setresuid, 1673eb320b0eSRobert Watson .mpo_proc_check_setreuid = stub_proc_check_setreuid, 1674eb320b0eSRobert Watson .mpo_proc_check_setuid = stub_proc_check_setuid, 167530d239bcSRobert Watson .mpo_proc_check_signal = stub_proc_check_signal, 167630d239bcSRobert Watson .mpo_proc_check_wait = stub_proc_check_wait, 1677eb320b0eSRobert Watson 167830d239bcSRobert Watson .mpo_socket_check_accept = stub_socket_check_accept, 167930d239bcSRobert Watson .mpo_socket_check_bind = stub_socket_check_bind, 168030d239bcSRobert Watson .mpo_socket_check_connect = stub_socket_check_connect, 168130d239bcSRobert Watson .mpo_socket_check_create = stub_socket_check_create, 168230d239bcSRobert Watson .mpo_socket_check_deliver = stub_socket_check_deliver, 168330d239bcSRobert Watson .mpo_socket_check_listen = stub_socket_check_listen, 168430d239bcSRobert Watson .mpo_socket_check_poll = stub_socket_check_poll, 168530d239bcSRobert Watson .mpo_socket_check_receive = stub_socket_check_receive, 168630d239bcSRobert Watson .mpo_socket_check_relabel = stub_socket_check_relabel, 168730d239bcSRobert Watson .mpo_socket_check_send = stub_socket_check_send, 168830d239bcSRobert Watson .mpo_socket_check_stat = stub_socket_check_stat, 168930d239bcSRobert Watson .mpo_socket_check_visible = stub_socket_check_visible, 1690eb320b0eSRobert Watson .mpo_socket_copy_label = stub_copy_label, 1691eb320b0eSRobert Watson .mpo_socket_create = stub_socket_create, 1692eb320b0eSRobert Watson .mpo_socket_create_mbuf = stub_socket_create_mbuf, 1693eb320b0eSRobert Watson .mpo_socket_destroy_label = stub_destroy_label, 1694eb320b0eSRobert Watson .mpo_socket_externalize_label = stub_externalize_label, 1695eb320b0eSRobert Watson .mpo_socket_init_label = stub_init_label_waitcheck, 1696eb320b0eSRobert Watson .mpo_socket_internalize_label = stub_internalize_label, 1697eb320b0eSRobert Watson .mpo_socket_newconn = stub_socket_newconn, 1698eb320b0eSRobert Watson .mpo_socket_relabel = stub_socket_relabel, 1699eb320b0eSRobert Watson 1700eb320b0eSRobert Watson .mpo_socketpeer_destroy_label = stub_destroy_label, 1701eb320b0eSRobert Watson .mpo_socketpeer_externalize_label = stub_externalize_label, 1702eb320b0eSRobert Watson .mpo_socketpeer_init_label = stub_init_label_waitcheck, 1703eb320b0eSRobert Watson .mpo_socketpeer_set_from_mbuf = stub_socketpeer_set_from_mbuf, 1704eb320b0eSRobert Watson .mpo_socketpeer_set_from_socket = stub_socketpeer_set_from_socket, 1705eb320b0eSRobert Watson 1706eb320b0eSRobert Watson .mpo_syncache_init_label = stub_init_label_waitcheck, 1707eb320b0eSRobert Watson .mpo_syncache_destroy_label = stub_destroy_label, 1708eb320b0eSRobert Watson .mpo_syncache_create = stub_syncache_create, 1709eb320b0eSRobert Watson .mpo_syncache_create_mbuf= stub_syncache_create_mbuf, 1710eb320b0eSRobert Watson 1711eb320b0eSRobert Watson .mpo_sysvmsg_cleanup = stub_sysvmsg_cleanup, 1712eb320b0eSRobert Watson .mpo_sysvmsg_create = stub_sysvmsg_create, 1713eb320b0eSRobert Watson .mpo_sysvmsg_destroy_label = stub_destroy_label, 1714eb320b0eSRobert Watson .mpo_sysvmsg_init_label = stub_init_label, 1715eb320b0eSRobert Watson 1716eb320b0eSRobert Watson .mpo_sysvmsq_check_msgmsq = stub_sysvmsq_check_msgmsq, 1717eb320b0eSRobert Watson .mpo_sysvmsq_check_msgrcv = stub_sysvmsq_check_msgrcv, 1718eb320b0eSRobert Watson .mpo_sysvmsq_check_msgrmid = stub_sysvmsq_check_msgrmid, 1719eb320b0eSRobert Watson .mpo_sysvmsq_check_msqget = stub_sysvmsq_check_msqget, 1720eb320b0eSRobert Watson .mpo_sysvmsq_check_msqsnd = stub_sysvmsq_check_msqsnd, 1721eb320b0eSRobert Watson .mpo_sysvmsq_check_msqrcv = stub_sysvmsq_check_msqrcv, 1722eb320b0eSRobert Watson .mpo_sysvmsq_check_msqctl = stub_sysvmsq_check_msqctl, 1723eb320b0eSRobert Watson .mpo_sysvmsq_cleanup = stub_sysvmsq_cleanup, 1724eb320b0eSRobert Watson .mpo_sysvmsq_create = stub_sysvmsq_create, 1725eb320b0eSRobert Watson .mpo_sysvmsq_destroy_label = stub_destroy_label, 1726eb320b0eSRobert Watson .mpo_sysvmsq_init_label = stub_init_label, 1727eb320b0eSRobert Watson 1728eb320b0eSRobert Watson .mpo_sysvsem_check_semctl = stub_sysvsem_check_semctl, 1729eb320b0eSRobert Watson .mpo_sysvsem_check_semget = stub_sysvsem_check_semget, 1730eb320b0eSRobert Watson .mpo_sysvsem_check_semop = stub_sysvsem_check_semop, 1731eb320b0eSRobert Watson .mpo_sysvsem_cleanup = stub_sysvsem_cleanup, 1732eb320b0eSRobert Watson .mpo_sysvsem_create = stub_sysvsem_create, 1733eb320b0eSRobert Watson .mpo_sysvsem_destroy_label = stub_destroy_label, 1734eb320b0eSRobert Watson .mpo_sysvsem_init_label = stub_init_label, 1735eb320b0eSRobert Watson 1736eb320b0eSRobert Watson .mpo_sysvshm_check_shmat = stub_sysvshm_check_shmat, 1737eb320b0eSRobert Watson .mpo_sysvshm_check_shmctl = stub_sysvshm_check_shmctl, 1738eb320b0eSRobert Watson .mpo_sysvshm_check_shmdt = stub_sysvshm_check_shmdt, 1739eb320b0eSRobert Watson .mpo_sysvshm_check_shmget = stub_sysvshm_check_shmget, 1740eb320b0eSRobert Watson .mpo_sysvshm_cleanup = stub_sysvshm_cleanup, 1741eb320b0eSRobert Watson .mpo_sysvshm_create = stub_sysvshm_create, 1742eb320b0eSRobert Watson .mpo_sysvshm_destroy_label = stub_destroy_label, 1743eb320b0eSRobert Watson .mpo_sysvshm_init_label = stub_init_label, 1744eb320b0eSRobert Watson 174530d239bcSRobert Watson .mpo_system_check_acct = stub_system_check_acct, 174630d239bcSRobert Watson .mpo_system_check_audit = stub_system_check_audit, 174730d239bcSRobert Watson .mpo_system_check_auditctl = stub_system_check_auditctl, 174830d239bcSRobert Watson .mpo_system_check_auditon = stub_system_check_auditon, 174930d239bcSRobert Watson .mpo_system_check_reboot = stub_system_check_reboot, 175030d239bcSRobert Watson .mpo_system_check_swapoff = stub_system_check_swapoff, 175130d239bcSRobert Watson .mpo_system_check_swapon = stub_system_check_swapon, 175230d239bcSRobert Watson .mpo_system_check_sysctl = stub_system_check_sysctl, 1753eb320b0eSRobert Watson 1754eb320b0eSRobert Watson .mpo_thread_userret = stub_thread_userret, 1755eb320b0eSRobert Watson 1756eb320b0eSRobert Watson .mpo_vnode_associate_extattr = stub_vnode_associate_extattr, 1757eb320b0eSRobert Watson .mpo_vnode_associate_singlelabel = stub_vnode_associate_singlelabel, 175830d239bcSRobert Watson .mpo_vnode_check_access = stub_vnode_check_access, 175930d239bcSRobert Watson .mpo_vnode_check_chdir = stub_vnode_check_chdir, 176030d239bcSRobert Watson .mpo_vnode_check_chroot = stub_vnode_check_chroot, 176130d239bcSRobert Watson .mpo_vnode_check_create = stub_vnode_check_create, 176230d239bcSRobert Watson .mpo_vnode_check_deleteacl = stub_vnode_check_deleteacl, 176330d239bcSRobert Watson .mpo_vnode_check_deleteextattr = stub_vnode_check_deleteextattr, 176430d239bcSRobert Watson .mpo_vnode_check_exec = stub_vnode_check_exec, 176530d239bcSRobert Watson .mpo_vnode_check_getacl = stub_vnode_check_getacl, 176630d239bcSRobert Watson .mpo_vnode_check_getextattr = stub_vnode_check_getextattr, 176730d239bcSRobert Watson .mpo_vnode_check_link = stub_vnode_check_link, 176830d239bcSRobert Watson .mpo_vnode_check_listextattr = stub_vnode_check_listextattr, 176930d239bcSRobert Watson .mpo_vnode_check_lookup = stub_vnode_check_lookup, 177030d239bcSRobert Watson .mpo_vnode_check_mmap = stub_vnode_check_mmap, 177130d239bcSRobert Watson .mpo_vnode_check_mmap_downgrade = stub_vnode_check_mmap_downgrade, 177230d239bcSRobert Watson .mpo_vnode_check_mprotect = stub_vnode_check_mprotect, 177330d239bcSRobert Watson .mpo_vnode_check_open = stub_vnode_check_open, 177430d239bcSRobert Watson .mpo_vnode_check_poll = stub_vnode_check_poll, 177530d239bcSRobert Watson .mpo_vnode_check_read = stub_vnode_check_read, 177630d239bcSRobert Watson .mpo_vnode_check_readdir = stub_vnode_check_readdir, 177730d239bcSRobert Watson .mpo_vnode_check_readlink = stub_vnode_check_readlink, 177830d239bcSRobert Watson .mpo_vnode_check_relabel = stub_vnode_check_relabel, 177930d239bcSRobert Watson .mpo_vnode_check_rename_from = stub_vnode_check_rename_from, 178030d239bcSRobert Watson .mpo_vnode_check_rename_to = stub_vnode_check_rename_to, 178130d239bcSRobert Watson .mpo_vnode_check_revoke = stub_vnode_check_revoke, 178230d239bcSRobert Watson .mpo_vnode_check_setacl = stub_vnode_check_setacl, 178330d239bcSRobert Watson .mpo_vnode_check_setextattr = stub_vnode_check_setextattr, 178430d239bcSRobert Watson .mpo_vnode_check_setflags = stub_vnode_check_setflags, 178530d239bcSRobert Watson .mpo_vnode_check_setmode = stub_vnode_check_setmode, 178630d239bcSRobert Watson .mpo_vnode_check_setowner = stub_vnode_check_setowner, 178730d239bcSRobert Watson .mpo_vnode_check_setutimes = stub_vnode_check_setutimes, 178830d239bcSRobert Watson .mpo_vnode_check_stat = stub_vnode_check_stat, 178930d239bcSRobert Watson .mpo_vnode_check_unlink = stub_vnode_check_unlink, 179030d239bcSRobert Watson .mpo_vnode_check_write = stub_vnode_check_write, 1791eb320b0eSRobert Watson .mpo_vnode_copy_label = stub_copy_label, 1792eb320b0eSRobert Watson .mpo_vnode_create_extattr = stub_vnode_create_extattr, 1793eb320b0eSRobert Watson .mpo_vnode_destroy_label = stub_destroy_label, 1794eb320b0eSRobert Watson .mpo_vnode_execve_transition = stub_vnode_execve_transition, 1795eb320b0eSRobert Watson .mpo_vnode_execve_will_transition = stub_vnode_execve_will_transition, 1796eb320b0eSRobert Watson .mpo_vnode_externalize_label = stub_externalize_label, 1797eb320b0eSRobert Watson .mpo_vnode_init_label = stub_init_label, 1798eb320b0eSRobert Watson .mpo_vnode_internalize_label = stub_internalize_label, 1799eb320b0eSRobert Watson .mpo_vnode_relabel = stub_vnode_relabel, 1800eb320b0eSRobert Watson .mpo_vnode_setlabel_extattr = stub_vnode_setlabel_extattr, 1801d8a7b7a3SRobert Watson }; 1802d8a7b7a3SRobert Watson 18036356dba0SRobert Watson #define STUB_OBJECTS (MPC_OBJECT_CRED | \ 18046356dba0SRobert Watson /* XXX: MPC_OBJECT_PROC | */ \ 18056356dba0SRobert Watson MPC_OBJECT_VNODE | \ 18066356dba0SRobert Watson MPC_OBJECT_INPCB | \ 18076356dba0SRobert Watson MPC_OBJECT_SOCKET | \ 18086356dba0SRobert Watson MPC_OBJECT_DEVFS | \ 18096356dba0SRobert Watson MPC_OBJECT_MBUF | \ 18106356dba0SRobert Watson MPC_OBJECT_IPQ | \ 18116356dba0SRobert Watson MPC_OBJECT_IFNET | \ 18126356dba0SRobert Watson MPC_OBJECT_BPFDESC | \ 18136356dba0SRobert Watson MPC_OBJECT_PIPE | \ 18146356dba0SRobert Watson MPC_OBJECT_MOUNT | \ 18156356dba0SRobert Watson MPC_OBJECT_POSIXSEM | \ 18166356dba0SRobert Watson MPC_OBJECT_POSIXSHM | \ 18176356dba0SRobert Watson MPC_OBJECT_SYSVMSG | \ 18186356dba0SRobert Watson MPC_OBJECT_SYSVMSQ | \ 18196356dba0SRobert Watson MPC_OBJECT_SYSVSEM | \ 18206356dba0SRobert Watson MPC_OBJECT_SYSVSHM | \ 18216356dba0SRobert Watson MPC_OBJECT_SYNCACHE) 18226356dba0SRobert Watson 18233f1a7a90SRobert Watson MAC_POLICY_SET(&stub_ops, mac_stub, "TrustedBSD MAC/Stub", 18246356dba0SRobert Watson MPC_LOADTIME_FLAG_UNLOADOK, NULL, STUB_OBJECTS); 1825