xref: /freebsd/sys/security/mac_stub/mac_stub.c (revision 6aeb05d7beb3dca9125aea23d23a4aee6f7edae2)
1d8a7b7a3SRobert Watson /*-
2f6a41092SRobert Watson  * Copyright (c) 1999-2002 Robert N. M. Watson
3ba53d9c9SRobert Watson  * Copyright (c) 2001-2005 McAfee, Inc.
46758f88eSRobert Watson  * Copyright (c) 2005 SPARTA, Inc.
5d8a7b7a3SRobert Watson  * All rights reserved.
6d8a7b7a3SRobert Watson  *
7d8a7b7a3SRobert Watson  * This software was developed by Robert Watson for the TrustedBSD Project.
8d8a7b7a3SRobert Watson  *
9ba53d9c9SRobert Watson  * This software was developed for the FreeBSD Project in part by McAfee
10ba53d9c9SRobert Watson  * Research, the Security Research Division of McAfee, Inc. under
11ba53d9c9SRobert Watson  * DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA
12ba53d9c9SRobert Watson  * CHATS research program.
13d8a7b7a3SRobert Watson  *
146758f88eSRobert Watson  * This software was enhanced by SPARTA ISSO under SPAWAR contract
156758f88eSRobert Watson  * N66001-04-C-6019 ("SEFOS").
166758f88eSRobert Watson  *
17d8a7b7a3SRobert Watson  * Redistribution and use in source and binary forms, with or without
18d8a7b7a3SRobert Watson  * modification, are permitted provided that the following conditions
19d8a7b7a3SRobert Watson  * are met:
20d8a7b7a3SRobert Watson  * 1. Redistributions of source code must retain the above copyright
21d8a7b7a3SRobert Watson  *    notice, this list of conditions and the following disclaimer.
22d8a7b7a3SRobert Watson  * 2. Redistributions in binary form must reproduce the above copyright
23d8a7b7a3SRobert Watson  *    notice, this list of conditions and the following disclaimer in the
24d8a7b7a3SRobert Watson  *    documentation and/or other materials provided with the distribution.
25d8a7b7a3SRobert Watson  *
26d8a7b7a3SRobert Watson  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
27d8a7b7a3SRobert Watson  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28d8a7b7a3SRobert Watson  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29d8a7b7a3SRobert Watson  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
30d8a7b7a3SRobert Watson  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31d8a7b7a3SRobert Watson  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32d8a7b7a3SRobert Watson  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33d8a7b7a3SRobert Watson  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34d8a7b7a3SRobert Watson  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35d8a7b7a3SRobert Watson  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36d8a7b7a3SRobert Watson  * SUCH DAMAGE.
37d8a7b7a3SRobert Watson  *
38d8a7b7a3SRobert Watson  * $FreeBSD$
39d8a7b7a3SRobert Watson  */
40d8a7b7a3SRobert Watson 
41d8a7b7a3SRobert Watson /*
42d8a7b7a3SRobert Watson  * Developed by the TrustedBSD Project.
431c3f91cdSRobert Watson  *
441c3f91cdSRobert Watson  * Stub module that implements a NOOP for most (if not all) MAC Framework
451c3f91cdSRobert Watson  * policy entry points.
46d8a7b7a3SRobert Watson  */
47d8a7b7a3SRobert Watson 
48d8a7b7a3SRobert Watson #include <sys/types.h>
49d8a7b7a3SRobert Watson #include <sys/param.h>
50d8a7b7a3SRobert Watson #include <sys/acl.h>
51d8a7b7a3SRobert Watson #include <sys/conf.h>
52763bbd2fSRobert Watson #include <sys/extattr.h>
53d8a7b7a3SRobert Watson #include <sys/kernel.h>
546aeb05d7STom Rhodes #include <sys/ksem.h>
55d8a7b7a3SRobert Watson #include <sys/mac.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 
85d8a7b7a3SRobert Watson #include <sys/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 /*
163d8a7b7a3SRobert Watson  * Labeling event operations: file system objects, and things that look
164d8a7b7a3SRobert Watson  * a lot like file system objects.
165d8a7b7a3SRobert Watson  */
166d8a7b7a3SRobert Watson static void
1671c3f91cdSRobert Watson stub_associate_vnode_devfs(struct mount *mp, struct label *fslabel,
168763bbd2fSRobert Watson     struct devfs_dirent *de, struct label *delabel, struct vnode *vp,
169763bbd2fSRobert Watson     struct label *vlabel)
170763bbd2fSRobert Watson {
171763bbd2fSRobert Watson 
172763bbd2fSRobert Watson }
173763bbd2fSRobert Watson 
174763bbd2fSRobert Watson static int
1751c3f91cdSRobert Watson stub_associate_vnode_extattr(struct mount *mp, struct label *fslabel,
176763bbd2fSRobert Watson     struct vnode *vp, struct label *vlabel)
177763bbd2fSRobert Watson {
178763bbd2fSRobert Watson 
179763bbd2fSRobert Watson 	return (0);
180763bbd2fSRobert Watson }
181763bbd2fSRobert Watson 
182763bbd2fSRobert Watson static void
1831c3f91cdSRobert Watson stub_associate_vnode_singlelabel(struct mount *mp,
184763bbd2fSRobert Watson     struct label *fslabel, struct vnode *vp, struct label *vlabel)
185763bbd2fSRobert Watson {
186763bbd2fSRobert Watson 
187763bbd2fSRobert Watson }
188763bbd2fSRobert Watson 
189763bbd2fSRobert Watson static void
190d26dd2d9SRobert Watson stub_create_devfs_device(struct ucred *cred, struct mount *mp,
191d26dd2d9SRobert Watson     struct cdev *dev, struct devfs_dirent *devfs_dirent, struct label *label)
192eea8ea31SRobert Watson {
193eea8ea31SRobert Watson 
194eea8ea31SRobert Watson }
195eea8ea31SRobert Watson 
196eea8ea31SRobert Watson static void
1971c3f91cdSRobert Watson stub_create_devfs_directory(struct mount *mp, char *dirname,
198990b4b2dSRobert Watson     int dirnamelen, struct devfs_dirent *devfs_dirent, struct label *label)
199990b4b2dSRobert Watson {
200990b4b2dSRobert Watson 
201990b4b2dSRobert Watson }
202990b4b2dSRobert Watson 
203990b4b2dSRobert Watson static void
2041c3f91cdSRobert Watson stub_create_devfs_symlink(struct ucred *cred, struct mount *mp,
205990b4b2dSRobert Watson     struct devfs_dirent *dd, struct label *ddlabel, struct devfs_dirent *de,
206990b4b2dSRobert Watson     struct label *delabel)
207d8a7b7a3SRobert Watson {
208d8a7b7a3SRobert Watson 
209d8a7b7a3SRobert Watson }
210d8a7b7a3SRobert Watson 
211763bbd2fSRobert Watson static int
2121c3f91cdSRobert Watson stub_create_vnode_extattr(struct ucred *cred, struct mount *mp,
213763bbd2fSRobert Watson     struct label *fslabel, struct vnode *dvp, struct label *dlabel,
214763bbd2fSRobert Watson     struct vnode *vp, struct label *vlabel, struct componentname *cnp)
215d8a7b7a3SRobert Watson {
216d8a7b7a3SRobert Watson 
217763bbd2fSRobert Watson 	return (0);
218d8a7b7a3SRobert Watson }
219d8a7b7a3SRobert Watson 
220d8a7b7a3SRobert Watson static void
2211c3f91cdSRobert Watson stub_create_mount(struct ucred *cred, struct mount *mp,
222d8a7b7a3SRobert Watson     struct label *mntlabel, struct label *fslabel)
223d8a7b7a3SRobert Watson {
224d8a7b7a3SRobert Watson 
225d8a7b7a3SRobert Watson }
226d8a7b7a3SRobert Watson 
227d8a7b7a3SRobert Watson static void
2281c3f91cdSRobert Watson stub_relabel_vnode(struct ucred *cred, struct vnode *vp,
229d8a7b7a3SRobert Watson     struct label *vnodelabel, struct label *label)
230d8a7b7a3SRobert Watson {
231d8a7b7a3SRobert Watson 
232d8a7b7a3SRobert Watson }
233d8a7b7a3SRobert Watson 
234d8a7b7a3SRobert Watson static int
2351c3f91cdSRobert Watson stub_setlabel_vnode_extattr(struct ucred *cred, struct vnode *vp,
236763bbd2fSRobert Watson     struct label *vlabel, struct label *intlabel)
237d8a7b7a3SRobert Watson {
238d8a7b7a3SRobert Watson 
239d8a7b7a3SRobert Watson 	return (0);
240d8a7b7a3SRobert Watson }
241d8a7b7a3SRobert Watson 
242d8a7b7a3SRobert Watson static void
2431c3f91cdSRobert Watson stub_update_devfsdirent(struct mount *mp,
244990b4b2dSRobert Watson     struct devfs_dirent *devfs_dirent, struct label *direntlabel,
245990b4b2dSRobert Watson     struct vnode *vp, struct label *vnodelabel)
246d8a7b7a3SRobert Watson {
247d8a7b7a3SRobert Watson 
248d8a7b7a3SRobert Watson }
249d8a7b7a3SRobert Watson 
250d8a7b7a3SRobert Watson /*
251d8a7b7a3SRobert Watson  * Labeling event operations: IPC object.
252d8a7b7a3SRobert Watson  */
253d8a7b7a3SRobert Watson static void
2541c3f91cdSRobert Watson stub_create_mbuf_from_socket(struct socket *so, struct label *socketlabel,
255d8a7b7a3SRobert Watson     struct mbuf *m, struct label *mbuflabel)
256d8a7b7a3SRobert Watson {
257d8a7b7a3SRobert Watson 
258d8a7b7a3SRobert Watson }
259d8a7b7a3SRobert Watson 
260d8a7b7a3SRobert Watson static void
2611c3f91cdSRobert Watson stub_create_socket(struct ucred *cred, struct socket *socket,
262d8a7b7a3SRobert Watson     struct label *socketlabel)
263d8a7b7a3SRobert Watson {
264d8a7b7a3SRobert Watson 
265d8a7b7a3SRobert Watson }
266d8a7b7a3SRobert Watson 
267d8a7b7a3SRobert Watson static void
26891c2dc94SRobert Watson stub_create_pipe(struct ucred *cred, struct pipepair *pp,
269d8a7b7a3SRobert Watson     struct label *pipelabel)
270d8a7b7a3SRobert Watson {
271d8a7b7a3SRobert Watson 
272d8a7b7a3SRobert Watson }
273d8a7b7a3SRobert Watson 
274d8a7b7a3SRobert Watson static void
27552648411SRobert Watson stub_create_posix_sem(struct ucred *cred, struct ksem *ksemptr,
27652648411SRobert Watson     struct label *ks_label)
27752648411SRobert Watson {
27852648411SRobert Watson 
27952648411SRobert Watson }
28052648411SRobert Watson 
28152648411SRobert Watson static void
2821c3f91cdSRobert Watson stub_create_socket_from_socket(struct socket *oldsocket,
283d8a7b7a3SRobert Watson     struct label *oldsocketlabel, struct socket *newsocket,
284d8a7b7a3SRobert Watson     struct label *newsocketlabel)
285d8a7b7a3SRobert Watson {
286d8a7b7a3SRobert Watson 
287d8a7b7a3SRobert Watson }
288d8a7b7a3SRobert Watson 
289d8a7b7a3SRobert Watson static void
2901c3f91cdSRobert Watson stub_relabel_socket(struct ucred *cred, struct socket *socket,
291d8a7b7a3SRobert Watson     struct label *socketlabel, struct label *newlabel)
292d8a7b7a3SRobert Watson {
293d8a7b7a3SRobert Watson 
294d8a7b7a3SRobert Watson }
295d8a7b7a3SRobert Watson 
296d8a7b7a3SRobert Watson static void
29791c2dc94SRobert Watson stub_relabel_pipe(struct ucred *cred, struct pipepair *pp,
298d8a7b7a3SRobert Watson     struct label *pipelabel, struct label *newlabel)
299d8a7b7a3SRobert Watson {
300d8a7b7a3SRobert Watson 
301d8a7b7a3SRobert Watson }
302d8a7b7a3SRobert Watson 
303d8a7b7a3SRobert Watson static void
3041c3f91cdSRobert Watson stub_set_socket_peer_from_mbuf(struct mbuf *mbuf, struct label *mbuflabel,
305d8a7b7a3SRobert Watson     struct socket *socket, struct label *socketpeerlabel)
306d8a7b7a3SRobert Watson {
307d8a7b7a3SRobert Watson 
308d8a7b7a3SRobert Watson }
309d8a7b7a3SRobert Watson 
310d8a7b7a3SRobert Watson static void
3111c3f91cdSRobert Watson stub_set_socket_peer_from_socket(struct socket *oldsocket,
312d8a7b7a3SRobert Watson     struct label *oldsocketlabel, struct socket *newsocket,
313d8a7b7a3SRobert Watson     struct label *newsocketpeerlabel)
314d8a7b7a3SRobert Watson {
315d8a7b7a3SRobert Watson 
316d8a7b7a3SRobert Watson }
317d8a7b7a3SRobert Watson 
318d8a7b7a3SRobert Watson /*
319d8a7b7a3SRobert Watson  * Labeling event operations: network objects.
320d8a7b7a3SRobert Watson  */
321d8a7b7a3SRobert Watson static void
3221c3f91cdSRobert Watson stub_create_bpfdesc(struct ucred *cred, struct bpf_d *bpf_d,
323d8a7b7a3SRobert Watson     struct label *bpflabel)
324d8a7b7a3SRobert Watson {
325d8a7b7a3SRobert Watson 
326d8a7b7a3SRobert Watson }
327d8a7b7a3SRobert Watson 
328d8a7b7a3SRobert Watson static void
3291c3f91cdSRobert Watson stub_create_datagram_from_ipq(struct ipq *ipq, struct label *ipqlabel,
330d8a7b7a3SRobert Watson     struct mbuf *datagram, struct label *datagramlabel)
331d8a7b7a3SRobert Watson {
332d8a7b7a3SRobert Watson 
333d8a7b7a3SRobert Watson }
334d8a7b7a3SRobert Watson 
335d8a7b7a3SRobert Watson static void
3361c3f91cdSRobert Watson stub_create_fragment(struct mbuf *datagram, struct label *datagramlabel,
337d8a7b7a3SRobert Watson     struct mbuf *fragment, struct label *fragmentlabel)
338d8a7b7a3SRobert Watson {
339d8a7b7a3SRobert Watson 
340d8a7b7a3SRobert Watson }
341d8a7b7a3SRobert Watson 
342d8a7b7a3SRobert Watson static void
3431c3f91cdSRobert Watson stub_create_ifnet(struct ifnet *ifnet, struct label *ifnetlabel)
344d8a7b7a3SRobert Watson {
345d8a7b7a3SRobert Watson 
346d8a7b7a3SRobert Watson }
347d8a7b7a3SRobert Watson 
348d8a7b7a3SRobert Watson static void
349a557af22SRobert Watson stub_create_inpcb_from_socket(struct socket *so, struct label *solabel,
350a557af22SRobert Watson     struct inpcb *inp, struct label *inplabel)
351a557af22SRobert Watson {
352a557af22SRobert Watson 
353a557af22SRobert Watson }
354a557af22SRobert Watson 
355a557af22SRobert Watson static void
356ba53d9c9SRobert Watson stub_create_sysv_msgmsg(struct ucred *cred, struct msqid_kernel *msqkptr,
357ba53d9c9SRobert Watson     struct label *msqlabel, struct msg *msgptr, struct label *msglabel)
358ba53d9c9SRobert Watson {
359ba53d9c9SRobert Watson 
360ba53d9c9SRobert Watson }
361ba53d9c9SRobert Watson 
362ba53d9c9SRobert Watson static void
363ba53d9c9SRobert Watson stub_create_sysv_msgqueue(struct ucred *cred, struct msqid_kernel *msqkptr,
364ba53d9c9SRobert Watson     struct label *msqlabel)
365ba53d9c9SRobert Watson {
366ba53d9c9SRobert Watson 
367ba53d9c9SRobert Watson }
368ba53d9c9SRobert Watson 
369ba53d9c9SRobert Watson static void
3703831e7d7SRobert Watson stub_create_sysv_sem(struct ucred *cred, struct semid_kernel *semakptr,
371ba53d9c9SRobert Watson     struct label *semalabel)
372ba53d9c9SRobert Watson {
373ba53d9c9SRobert Watson 
374ba53d9c9SRobert Watson }
375ba53d9c9SRobert Watson 
376ba53d9c9SRobert Watson static void
377ba53d9c9SRobert Watson stub_create_sysv_shm(struct ucred *cred, struct shmid_kernel *shmsegptr,
378ba53d9c9SRobert Watson     struct label *shmalabel)
379ba53d9c9SRobert Watson {
380ba53d9c9SRobert Watson 
381ba53d9c9SRobert Watson }
382ba53d9c9SRobert Watson 
383ba53d9c9SRobert Watson static void
3841c3f91cdSRobert Watson stub_create_ipq(struct mbuf *fragment, struct label *fragmentlabel,
385d8a7b7a3SRobert Watson     struct ipq *ipq, struct label *ipqlabel)
386d8a7b7a3SRobert Watson {
387d8a7b7a3SRobert Watson 
388d8a7b7a3SRobert Watson }
389d8a7b7a3SRobert Watson 
390d8a7b7a3SRobert Watson static void
3912d92ec98SRobert Watson stub_create_mbuf_from_inpcb(struct inpcb *inp, struct label *inplabel,
3922d92ec98SRobert Watson     struct mbuf *m, struct label *mlabel)
3932d92ec98SRobert Watson {
3942d92ec98SRobert Watson 
3952d92ec98SRobert Watson }
3962d92ec98SRobert Watson 
3972d92ec98SRobert Watson static void
3981c3f91cdSRobert Watson stub_create_mbuf_linklayer(struct ifnet *ifnet, struct label *ifnetlabel,
399d8a7b7a3SRobert Watson     struct mbuf *mbuf, struct label *mbuflabel)
400d8a7b7a3SRobert Watson {
401d8a7b7a3SRobert Watson 
402d8a7b7a3SRobert Watson }
403d8a7b7a3SRobert Watson 
404d8a7b7a3SRobert Watson static void
4051c3f91cdSRobert Watson stub_create_mbuf_from_bpfdesc(struct bpf_d *bpf_d, struct label *bpflabel,
406d8a7b7a3SRobert Watson     struct mbuf *mbuf, struct label *mbuflabel)
407d8a7b7a3SRobert Watson {
408d8a7b7a3SRobert Watson 
409d8a7b7a3SRobert Watson }
410d8a7b7a3SRobert Watson 
411d8a7b7a3SRobert Watson static void
4121c3f91cdSRobert Watson stub_create_mbuf_from_ifnet(struct ifnet *ifnet, struct label *ifnetlabel,
413d8a7b7a3SRobert Watson     struct mbuf *m, struct label *mbuflabel)
414d8a7b7a3SRobert Watson {
415d8a7b7a3SRobert Watson 
416d8a7b7a3SRobert Watson }
417d8a7b7a3SRobert Watson 
418d8a7b7a3SRobert Watson static void
4191c3f91cdSRobert Watson stub_create_mbuf_multicast_encap(struct mbuf *oldmbuf,
420d8a7b7a3SRobert Watson     struct label *oldmbuflabel, struct ifnet *ifnet, struct label *ifnetlabel,
421d8a7b7a3SRobert Watson     struct mbuf *newmbuf, struct label *newmbuflabel)
422d8a7b7a3SRobert Watson {
423d8a7b7a3SRobert Watson 
424d8a7b7a3SRobert Watson }
425d8a7b7a3SRobert Watson 
426d8a7b7a3SRobert Watson static void
4271c3f91cdSRobert Watson stub_create_mbuf_netlayer(struct mbuf *oldmbuf,
428d8a7b7a3SRobert Watson     struct label *oldmbuflabel, struct mbuf *newmbuf, struct label *newmbuflabel)
429d8a7b7a3SRobert Watson {
430d8a7b7a3SRobert Watson 
431d8a7b7a3SRobert Watson }
432d8a7b7a3SRobert Watson 
433d8a7b7a3SRobert Watson static int
4341c3f91cdSRobert Watson stub_fragment_match(struct mbuf *fragment, struct label *fragmentlabel,
435d8a7b7a3SRobert Watson     struct ipq *ipq, struct label *ipqlabel)
436d8a7b7a3SRobert Watson {
437d8a7b7a3SRobert Watson 
438d8a7b7a3SRobert Watson 	return (1);
439d8a7b7a3SRobert Watson }
440d8a7b7a3SRobert Watson 
441d8a7b7a3SRobert Watson static void
44264f00af8SRobert Watson stub_reflect_mbuf_icmp(struct mbuf *m, struct label *mlabel)
44364f00af8SRobert Watson {
44464f00af8SRobert Watson 
44564f00af8SRobert Watson }
44664f00af8SRobert Watson 
44764f00af8SRobert Watson static void
44864f00af8SRobert Watson stub_reflect_mbuf_tcp(struct mbuf *m, struct label *mlabel)
44964f00af8SRobert Watson {
45064f00af8SRobert Watson 
45164f00af8SRobert Watson }
45264f00af8SRobert Watson 
45364f00af8SRobert Watson static void
4541c3f91cdSRobert Watson stub_relabel_ifnet(struct ucred *cred, struct ifnet *ifnet,
455d8a7b7a3SRobert Watson     struct label *ifnetlabel, struct label *newlabel)
456d8a7b7a3SRobert Watson {
457d8a7b7a3SRobert Watson 
458d8a7b7a3SRobert Watson }
459d8a7b7a3SRobert Watson 
460d8a7b7a3SRobert Watson static void
4611c3f91cdSRobert Watson stub_update_ipq(struct mbuf *fragment, struct label *fragmentlabel,
462d8a7b7a3SRobert Watson     struct ipq *ipq, struct label *ipqlabel)
463d8a7b7a3SRobert Watson {
464d8a7b7a3SRobert Watson 
465d8a7b7a3SRobert Watson }
466d8a7b7a3SRobert Watson 
467a557af22SRobert Watson static void
468a557af22SRobert Watson stub_inpcb_sosetlabel(struct socket *so, struct label *solabel,
469a557af22SRobert Watson     struct inpcb *inp, struct label *inplabel)
470a557af22SRobert Watson {
471a557af22SRobert Watson 
472a557af22SRobert Watson }
473a557af22SRobert Watson 
474d8a7b7a3SRobert Watson /*
475d8a7b7a3SRobert Watson  * Labeling event operations: processes.
476d8a7b7a3SRobert Watson  */
477d8a7b7a3SRobert Watson static void
4781c3f91cdSRobert Watson stub_execve_transition(struct ucred *old, struct ucred *new,
479939b97cbSRobert Watson     struct vnode *vp, struct label *vnodelabel,
480ef5def59SRobert Watson     struct label *interpvnodelabel, struct image_params *imgp,
481ef5def59SRobert Watson     struct label *execlabel)
482d8a7b7a3SRobert Watson {
483d8a7b7a3SRobert Watson 
484d8a7b7a3SRobert Watson }
485d8a7b7a3SRobert Watson 
486d8a7b7a3SRobert Watson static int
4871c3f91cdSRobert Watson stub_execve_will_transition(struct ucred *old, struct vnode *vp,
488939b97cbSRobert Watson     struct label *vnodelabel, struct label *interpvnodelabel,
489ef5def59SRobert Watson     struct image_params *imgp, struct label *execlabel)
490d8a7b7a3SRobert Watson {
491d8a7b7a3SRobert Watson 
492d8a7b7a3SRobert Watson 	return (0);
493d8a7b7a3SRobert Watson }
494d8a7b7a3SRobert Watson 
495d8a7b7a3SRobert Watson static void
4961c3f91cdSRobert Watson stub_create_proc0(struct ucred *cred)
497d8a7b7a3SRobert Watson {
498d8a7b7a3SRobert Watson 
499d8a7b7a3SRobert Watson }
500d8a7b7a3SRobert Watson 
501d8a7b7a3SRobert Watson static void
5021c3f91cdSRobert Watson stub_create_proc1(struct ucred *cred)
503d8a7b7a3SRobert Watson {
504d8a7b7a3SRobert Watson 
505d8a7b7a3SRobert Watson }
506d8a7b7a3SRobert Watson 
507d8a7b7a3SRobert Watson static void
5081c3f91cdSRobert Watson stub_relabel_cred(struct ucred *cred, struct label *newlabel)
509d8a7b7a3SRobert Watson {
510d8a7b7a3SRobert Watson 
511d8a7b7a3SRobert Watson }
512d8a7b7a3SRobert Watson 
51309de2dc2SRobert Watson static void
5141c3f91cdSRobert Watson stub_thread_userret(struct thread *td)
51509de2dc2SRobert Watson {
51609de2dc2SRobert Watson 
51709de2dc2SRobert Watson }
51809de2dc2SRobert Watson 
519d8a7b7a3SRobert Watson /*
520ba53d9c9SRobert Watson  * Label cleanup/flush operations
521ba53d9c9SRobert Watson  */
522ba53d9c9SRobert Watson static void
523ba53d9c9SRobert Watson stub_cleanup_sysv_msgmsg(struct label *msglabel)
524ba53d9c9SRobert Watson {
525ba53d9c9SRobert Watson 
526ba53d9c9SRobert Watson }
527ba53d9c9SRobert Watson 
528ba53d9c9SRobert Watson static void
529ba53d9c9SRobert Watson stub_cleanup_sysv_msgqueue(struct label *msqlabel)
530ba53d9c9SRobert Watson {
531ba53d9c9SRobert Watson 
532ba53d9c9SRobert Watson }
533ba53d9c9SRobert Watson 
534ba53d9c9SRobert Watson static void
5353831e7d7SRobert Watson stub_cleanup_sysv_sem(struct label *semalabel)
536ba53d9c9SRobert Watson {
537ba53d9c9SRobert Watson 
538ba53d9c9SRobert Watson }
539ba53d9c9SRobert Watson 
540ba53d9c9SRobert Watson static void
541ba53d9c9SRobert Watson stub_cleanup_sysv_shm(struct label *shmlabel)
542ba53d9c9SRobert Watson {
543ba53d9c9SRobert Watson 
544ba53d9c9SRobert Watson }
545ba53d9c9SRobert Watson 
546ba53d9c9SRobert Watson /*
547d8a7b7a3SRobert Watson  * Access control checks.
548d8a7b7a3SRobert Watson  */
549d8a7b7a3SRobert Watson static int
5501c3f91cdSRobert Watson stub_check_bpfdesc_receive(struct bpf_d *bpf_d, struct label *bpflabel,
551d8a7b7a3SRobert Watson     struct ifnet *ifnet, struct label *ifnet_label)
552d8a7b7a3SRobert Watson {
553d8a7b7a3SRobert Watson 
554d8a7b7a3SRobert Watson         return (0);
555d8a7b7a3SRobert Watson }
556d8a7b7a3SRobert Watson 
557d8a7b7a3SRobert Watson static int
5581c3f91cdSRobert Watson stub_check_cred_relabel(struct ucred *cred, struct label *newlabel)
559d8a7b7a3SRobert Watson {
560d8a7b7a3SRobert Watson 
561d8a7b7a3SRobert Watson 	return (0);
562d8a7b7a3SRobert Watson }
563d8a7b7a3SRobert Watson 
564d8a7b7a3SRobert Watson static int
5651c3f91cdSRobert Watson stub_check_cred_visible(struct ucred *u1, struct ucred *u2)
566d8a7b7a3SRobert Watson {
567d8a7b7a3SRobert Watson 
568d8a7b7a3SRobert Watson 	return (0);
569d8a7b7a3SRobert Watson }
570d8a7b7a3SRobert Watson 
571d8a7b7a3SRobert Watson static int
5721c3f91cdSRobert Watson stub_check_ifnet_relabel(struct ucred *cred, struct ifnet *ifnet,
5731979061bSRobert Watson     struct label *ifnetlabel, struct label *newlabel)
574d8a7b7a3SRobert Watson {
575d8a7b7a3SRobert Watson 
576d8a7b7a3SRobert Watson 	return (0);
577d8a7b7a3SRobert Watson }
578d8a7b7a3SRobert Watson 
579d8a7b7a3SRobert Watson static int
5801c3f91cdSRobert Watson stub_check_ifnet_transmit(struct ifnet *ifnet, struct label *ifnetlabel,
581d8a7b7a3SRobert Watson     struct mbuf *m, struct label *mbuflabel)
582d8a7b7a3SRobert Watson {
583d8a7b7a3SRobert Watson 
584d8a7b7a3SRobert Watson 	return (0);
585d8a7b7a3SRobert Watson }
586d8a7b7a3SRobert Watson 
587d8a7b7a3SRobert Watson static int
588a557af22SRobert Watson stub_check_inpcb_deliver(struct inpcb *inp, struct label *inplabel,
589a557af22SRobert Watson     struct mbuf *m, struct label *mlabel)
590a557af22SRobert Watson {
591a557af22SRobert Watson 
592a557af22SRobert Watson 	return (0);
593a557af22SRobert Watson }
594a557af22SRobert Watson 
595a557af22SRobert Watson static int
596ba53d9c9SRobert Watson stub_check_sysv_msgmsq(struct ucred *cred, struct msg *msgptr,
597ba53d9c9SRobert Watson     struct label *msglabel, struct msqid_kernel *msqkptr,
598ba53d9c9SRobert Watson     struct label *msqklabel)
599ba53d9c9SRobert Watson {
600ba53d9c9SRobert Watson 
601ba53d9c9SRobert Watson 	return (0);
602ba53d9c9SRobert Watson }
603ba53d9c9SRobert Watson 
604ba53d9c9SRobert Watson static int
605ba53d9c9SRobert Watson stub_check_sysv_msgrcv(struct ucred *cred, struct msg *msgptr,
606ba53d9c9SRobert Watson     struct label *msglabel)
607ba53d9c9SRobert Watson {
608ba53d9c9SRobert Watson 
609ba53d9c9SRobert Watson 	return (0);
610ba53d9c9SRobert Watson }
611ba53d9c9SRobert Watson 
612ba53d9c9SRobert Watson 
613ba53d9c9SRobert Watson static int
614ba53d9c9SRobert Watson stub_check_sysv_msgrmid(struct ucred *cred, struct msg *msgptr,
615ba53d9c9SRobert Watson     struct label *msglabel)
616ba53d9c9SRobert Watson {
617ba53d9c9SRobert Watson 
618ba53d9c9SRobert Watson 	return (0);
619ba53d9c9SRobert Watson }
620ba53d9c9SRobert Watson 
621ba53d9c9SRobert Watson 
622ba53d9c9SRobert Watson static int
623ba53d9c9SRobert Watson stub_check_sysv_msqget(struct ucred *cred, struct msqid_kernel *msqkptr,
624ba53d9c9SRobert Watson     struct label *msqklabel)
625ba53d9c9SRobert Watson {
626ba53d9c9SRobert Watson 
627ba53d9c9SRobert Watson 	return (0);
628ba53d9c9SRobert Watson }
629ba53d9c9SRobert Watson 
630ba53d9c9SRobert Watson 
631ba53d9c9SRobert Watson static int
632ba53d9c9SRobert Watson stub_check_sysv_msqsnd(struct ucred *cred, struct msqid_kernel *msqkptr,
633ba53d9c9SRobert Watson     struct label *msqklabel)
634ba53d9c9SRobert Watson {
635ba53d9c9SRobert Watson 
636ba53d9c9SRobert Watson 	return (0);
637ba53d9c9SRobert Watson }
638ba53d9c9SRobert Watson 
639ba53d9c9SRobert Watson static int
640ba53d9c9SRobert Watson stub_check_sysv_msqrcv(struct ucred *cred, struct msqid_kernel *msqkptr,
641ba53d9c9SRobert Watson     struct label *msqklabel)
642ba53d9c9SRobert Watson {
643ba53d9c9SRobert Watson 
644ba53d9c9SRobert Watson 	return (0);
645ba53d9c9SRobert Watson }
646ba53d9c9SRobert Watson 
647ba53d9c9SRobert Watson 
648ba53d9c9SRobert Watson static int
649ba53d9c9SRobert Watson stub_check_sysv_msqctl(struct ucred *cred, struct msqid_kernel *msqkptr,
650ba53d9c9SRobert Watson     struct label *msqklabel, int cmd)
651ba53d9c9SRobert Watson {
652ba53d9c9SRobert Watson 
653ba53d9c9SRobert Watson 	return (0);
654ba53d9c9SRobert Watson }
655ba53d9c9SRobert Watson 
656ba53d9c9SRobert Watson 
657ba53d9c9SRobert Watson static int
658ba53d9c9SRobert Watson stub_check_sysv_semctl(struct ucred *cred, struct semid_kernel *semakptr,
659ba53d9c9SRobert Watson     struct label *semaklabel, int cmd)
660ba53d9c9SRobert Watson {
661ba53d9c9SRobert Watson 
662ba53d9c9SRobert Watson 	return (0);
663ba53d9c9SRobert Watson }
664ba53d9c9SRobert Watson 
665ba53d9c9SRobert Watson static int
666ba53d9c9SRobert Watson stub_check_sysv_semget(struct ucred *cred, struct semid_kernel *semakptr,
667ba53d9c9SRobert Watson     struct label *semaklabel)
668ba53d9c9SRobert Watson {
669ba53d9c9SRobert Watson 
670ba53d9c9SRobert Watson 	return (0);
671ba53d9c9SRobert Watson }
672ba53d9c9SRobert Watson 
673ba53d9c9SRobert Watson 
674ba53d9c9SRobert Watson static int
675ba53d9c9SRobert Watson stub_check_sysv_semop(struct ucred *cred, struct semid_kernel *semakptr,
676ba53d9c9SRobert Watson     struct label *semaklabel, size_t accesstype)
677ba53d9c9SRobert Watson {
678ba53d9c9SRobert Watson 
679ba53d9c9SRobert Watson 	return (0);
680ba53d9c9SRobert Watson }
681ba53d9c9SRobert Watson 
682ba53d9c9SRobert Watson static int
683ba53d9c9SRobert Watson stub_check_sysv_shmat(struct ucred *cred, struct shmid_kernel *shmsegptr,
684ba53d9c9SRobert Watson     struct label *shmseglabel, int shmflg)
685ba53d9c9SRobert Watson {
686ba53d9c9SRobert Watson 
687ba53d9c9SRobert Watson 	return (0);
688ba53d9c9SRobert Watson }
689ba53d9c9SRobert Watson 
690ba53d9c9SRobert Watson static int
691ba53d9c9SRobert Watson stub_check_sysv_shmctl(struct ucred *cred, struct shmid_kernel *shmsegptr,
692ba53d9c9SRobert Watson     struct label *shmseglabel, int cmd)
693ba53d9c9SRobert Watson {
694ba53d9c9SRobert Watson 
695ba53d9c9SRobert Watson 	return (0);
696ba53d9c9SRobert Watson }
697ba53d9c9SRobert Watson 
698ba53d9c9SRobert Watson static int
699ba53d9c9SRobert Watson stub_check_sysv_shmdt(struct ucred *cred, struct shmid_kernel *shmsegptr,
700ba53d9c9SRobert Watson     struct label *shmseglabel)
701ba53d9c9SRobert Watson {
702ba53d9c9SRobert Watson 
703ba53d9c9SRobert Watson 	return (0);
704ba53d9c9SRobert Watson }
705ba53d9c9SRobert Watson 
706ba53d9c9SRobert Watson 
707ba53d9c9SRobert Watson static int
708ba53d9c9SRobert Watson stub_check_sysv_shmget(struct ucred *cred, struct shmid_kernel *shmsegptr,
709ba53d9c9SRobert Watson     struct label *shmseglabel, int shmflg)
710ba53d9c9SRobert Watson {
711ba53d9c9SRobert Watson 
712ba53d9c9SRobert Watson 	return (0);
713ba53d9c9SRobert Watson }
714ba53d9c9SRobert Watson 
715ba53d9c9SRobert Watson static int
7161c3f91cdSRobert Watson stub_check_kenv_dump(struct ucred *cred)
71709de2dc2SRobert Watson {
71809de2dc2SRobert Watson 
71909de2dc2SRobert Watson 	return (0);
72009de2dc2SRobert Watson }
72109de2dc2SRobert Watson 
72209de2dc2SRobert Watson static int
7231c3f91cdSRobert Watson stub_check_kenv_get(struct ucred *cred, char *name)
72409de2dc2SRobert Watson {
72509de2dc2SRobert Watson 
72609de2dc2SRobert Watson 	return (0);
72709de2dc2SRobert Watson }
72809de2dc2SRobert Watson 
72909de2dc2SRobert Watson static int
7301c3f91cdSRobert Watson stub_check_kenv_set(struct ucred *cred, char *name, char *value)
73109de2dc2SRobert Watson {
73209de2dc2SRobert Watson 
73309de2dc2SRobert Watson 	return (0);
73409de2dc2SRobert Watson }
73509de2dc2SRobert Watson 
73609de2dc2SRobert Watson static int
7371c3f91cdSRobert Watson stub_check_kenv_unset(struct ucred *cred, char *name)
73809de2dc2SRobert Watson {
73909de2dc2SRobert Watson 
74009de2dc2SRobert Watson 	return (0);
74109de2dc2SRobert Watson }
74209de2dc2SRobert Watson 
74309de2dc2SRobert Watson static int
7441c3f91cdSRobert Watson stub_check_kld_load(struct ucred *cred, struct vnode *vp,
74509de2dc2SRobert Watson     struct label *vlabel)
74609de2dc2SRobert Watson {
74709de2dc2SRobert Watson 
74809de2dc2SRobert Watson 	return (0);
74909de2dc2SRobert Watson }
75009de2dc2SRobert Watson 
75109de2dc2SRobert Watson static int
7521c3f91cdSRobert Watson stub_check_kld_stat(struct ucred *cred)
75309de2dc2SRobert Watson {
75409de2dc2SRobert Watson 
75509de2dc2SRobert Watson 	return (0);
75609de2dc2SRobert Watson }
75709de2dc2SRobert Watson 
75809de2dc2SRobert Watson static int
7591c3f91cdSRobert Watson stub_check_kld_unload(struct ucred *cred)
76009de2dc2SRobert Watson {
76109de2dc2SRobert Watson 
76209de2dc2SRobert Watson 	return (0);
76309de2dc2SRobert Watson }
76409de2dc2SRobert Watson 
76509de2dc2SRobert Watson static int
7661c3f91cdSRobert Watson stub_check_mount_stat(struct ucred *cred, struct mount *mp,
767d8a7b7a3SRobert Watson     struct label *mntlabel)
768d8a7b7a3SRobert Watson {
769d8a7b7a3SRobert Watson 
770d8a7b7a3SRobert Watson 	return (0);
771d8a7b7a3SRobert Watson }
772d8a7b7a3SRobert Watson 
773d8a7b7a3SRobert Watson static int
77491c2dc94SRobert Watson stub_check_pipe_ioctl(struct ucred *cred, struct pipepair *pp,
775d8a7b7a3SRobert Watson     struct label *pipelabel, unsigned long cmd, void /* caddr_t */ *data)
776d8a7b7a3SRobert Watson {
777d8a7b7a3SRobert Watson 
778d8a7b7a3SRobert Watson 	return (0);
779d8a7b7a3SRobert Watson }
780d8a7b7a3SRobert Watson 
781d8a7b7a3SRobert Watson static int
78291c2dc94SRobert Watson stub_check_pipe_poll(struct ucred *cred, struct pipepair *pp,
783c024c3eeSRobert Watson     struct label *pipelabel)
784c024c3eeSRobert Watson {
785c024c3eeSRobert Watson 
786c024c3eeSRobert Watson 	return (0);
787c024c3eeSRobert Watson }
788c024c3eeSRobert Watson 
789c024c3eeSRobert Watson static int
79091c2dc94SRobert Watson stub_check_pipe_read(struct ucred *cred, struct pipepair *pp,
791c024c3eeSRobert Watson     struct label *pipelabel)
792d8a7b7a3SRobert Watson {
793d8a7b7a3SRobert Watson 
794d8a7b7a3SRobert Watson 	return (0);
795d8a7b7a3SRobert Watson }
796d8a7b7a3SRobert Watson 
797d8a7b7a3SRobert Watson static int
79891c2dc94SRobert Watson stub_check_pipe_relabel(struct ucred *cred, struct pipepair *pp,
799d8a7b7a3SRobert Watson     struct label *pipelabel, struct label *newlabel)
800d8a7b7a3SRobert Watson {
801d8a7b7a3SRobert Watson 
802d8a7b7a3SRobert Watson 	return (0);
803d8a7b7a3SRobert Watson }
804d8a7b7a3SRobert Watson 
805d8a7b7a3SRobert Watson static int
80691c2dc94SRobert Watson stub_check_pipe_stat(struct ucred *cred, struct pipepair *pp,
807c024c3eeSRobert Watson     struct label *pipelabel)
808c024c3eeSRobert Watson {
809c024c3eeSRobert Watson 
810c024c3eeSRobert Watson 	return (0);
811c024c3eeSRobert Watson }
812c024c3eeSRobert Watson 
813c024c3eeSRobert Watson static int
81491c2dc94SRobert Watson stub_check_pipe_write(struct ucred *cred, struct pipepair *pp,
815c024c3eeSRobert Watson     struct label *pipelabel)
816c024c3eeSRobert Watson {
817c024c3eeSRobert Watson 
818c024c3eeSRobert Watson 	return (0);
819c024c3eeSRobert Watson }
820c024c3eeSRobert Watson 
821c024c3eeSRobert Watson static int
82252648411SRobert Watson stub_check_posix_sem_destroy(struct ucred *cred, struct ksem *ksemptr,
82352648411SRobert Watson     struct label *ks_label)
82452648411SRobert Watson {
82552648411SRobert Watson 
82652648411SRobert Watson 	return (0);
82752648411SRobert Watson }
82852648411SRobert Watson 
82952648411SRobert Watson static int
83052648411SRobert Watson stub_check_posix_sem_getvalue(struct ucred *cred, struct ksem *ksemptr,
83152648411SRobert Watson     struct label *ks_label)
83252648411SRobert Watson {
83352648411SRobert Watson 
83452648411SRobert Watson 	return (0);
83552648411SRobert Watson }
83652648411SRobert Watson 
83752648411SRobert Watson static int
83852648411SRobert Watson stub_check_posix_sem_open(struct ucred *cred, struct ksem *ksemptr,
83952648411SRobert Watson     struct label *ks_label)
84052648411SRobert Watson {
84152648411SRobert Watson 
84252648411SRobert Watson 	return (0);
84352648411SRobert Watson }
84452648411SRobert Watson 
84552648411SRobert Watson static int
84652648411SRobert Watson stub_check_posix_sem_post(struct ucred *cred, struct ksem *ksemptr,
84752648411SRobert Watson     struct label *ks_label)
84852648411SRobert Watson {
84952648411SRobert Watson 
85052648411SRobert Watson 	return (0);
85152648411SRobert Watson }
85252648411SRobert Watson 
85352648411SRobert Watson static int
85452648411SRobert Watson stub_check_posix_sem_unlink(struct ucred *cred, struct ksem *ksemptr,
85552648411SRobert Watson     struct label *ks_label)
85652648411SRobert Watson {
85752648411SRobert Watson 
85852648411SRobert Watson 	return (0);
85952648411SRobert Watson }
86052648411SRobert Watson 
86152648411SRobert Watson static int
86252648411SRobert Watson stub_check_posix_sem_wait(struct ucred *cred, struct ksem *ksemptr,
86352648411SRobert Watson     struct label *ks_label)
86452648411SRobert Watson {
86552648411SRobert Watson 
86652648411SRobert Watson 	return (0);
86752648411SRobert Watson }
86852648411SRobert Watson 
86952648411SRobert Watson static int
8701c3f91cdSRobert Watson stub_check_proc_debug(struct ucred *cred, struct proc *proc)
871d8a7b7a3SRobert Watson {
872d8a7b7a3SRobert Watson 
873d8a7b7a3SRobert Watson 	return (0);
874d8a7b7a3SRobert Watson }
875d8a7b7a3SRobert Watson 
876d8a7b7a3SRobert Watson static int
8771c3f91cdSRobert Watson stub_check_proc_sched(struct ucred *cred, struct proc *proc)
878d8a7b7a3SRobert Watson {
879d8a7b7a3SRobert Watson 
880d8a7b7a3SRobert Watson 	return (0);
881d8a7b7a3SRobert Watson }
882d8a7b7a3SRobert Watson 
883d8a7b7a3SRobert Watson static int
8841c3f91cdSRobert Watson stub_check_proc_signal(struct ucred *cred, struct proc *proc, int signum)
885d8a7b7a3SRobert Watson {
886d8a7b7a3SRobert Watson 
887d8a7b7a3SRobert Watson 	return (0);
888d8a7b7a3SRobert Watson }
889d8a7b7a3SRobert Watson 
890d8a7b7a3SRobert Watson static int
891babe9a2bSRobert Watson stub_check_proc_wait(struct ucred *cred, struct proc *proc)
892babe9a2bSRobert Watson {
893babe9a2bSRobert Watson 
894babe9a2bSRobert Watson 	return (0);
895babe9a2bSRobert Watson }
896babe9a2bSRobert Watson 
897babe9a2bSRobert Watson static int
898030a28b3SRobert Watson stub_check_proc_setuid(struct ucred *cred, uid_t uid)
899030a28b3SRobert Watson {
900030a28b3SRobert Watson 
901030a28b3SRobert Watson 	return (0);
902030a28b3SRobert Watson }
903030a28b3SRobert Watson 
904030a28b3SRobert Watson static int
905030a28b3SRobert Watson stub_check_proc_seteuid(struct ucred *cred, uid_t euid)
906030a28b3SRobert Watson {
907030a28b3SRobert Watson 
908030a28b3SRobert Watson 	return (0);
909030a28b3SRobert Watson }
910030a28b3SRobert Watson 
911030a28b3SRobert Watson static int
912030a28b3SRobert Watson stub_check_proc_setgid(struct ucred *cred, gid_t gid)
913030a28b3SRobert Watson {
914030a28b3SRobert Watson 
915030a28b3SRobert Watson 	return (0);
916030a28b3SRobert Watson }
917030a28b3SRobert Watson 
918030a28b3SRobert Watson static int
919030a28b3SRobert Watson stub_check_proc_setegid(struct ucred *cred, gid_t egid)
920030a28b3SRobert Watson {
921030a28b3SRobert Watson 
922030a28b3SRobert Watson 	return (0);
923030a28b3SRobert Watson }
924030a28b3SRobert Watson 
925030a28b3SRobert Watson static int
926030a28b3SRobert Watson stub_check_proc_setgroups(struct ucred *cred, int ngroups,
927030a28b3SRobert Watson 	gid_t *gidset)
928030a28b3SRobert Watson {
929030a28b3SRobert Watson 
930030a28b3SRobert Watson 	return (0);
931030a28b3SRobert Watson }
932030a28b3SRobert Watson 
933030a28b3SRobert Watson static int
934030a28b3SRobert Watson stub_check_proc_setreuid(struct ucred *cred, uid_t ruid, uid_t euid)
935030a28b3SRobert Watson {
936030a28b3SRobert Watson 
937030a28b3SRobert Watson 	return (0);
938030a28b3SRobert Watson }
939030a28b3SRobert Watson 
940030a28b3SRobert Watson static int
941030a28b3SRobert Watson stub_check_proc_setregid(struct ucred *cred, gid_t rgid, gid_t egid)
942030a28b3SRobert Watson {
943030a28b3SRobert Watson 
944030a28b3SRobert Watson 	return (0);
945030a28b3SRobert Watson }
946030a28b3SRobert Watson 
947030a28b3SRobert Watson static int
948030a28b3SRobert Watson stub_check_proc_setresuid(struct ucred *cred, uid_t ruid, uid_t euid,
949030a28b3SRobert Watson 	uid_t suid)
950030a28b3SRobert Watson {
951030a28b3SRobert Watson 
952030a28b3SRobert Watson 	return (0);
953030a28b3SRobert Watson }
954030a28b3SRobert Watson 
955030a28b3SRobert Watson static int
956030a28b3SRobert Watson stub_check_proc_setresgid(struct ucred *cred, gid_t rgid, gid_t egid,
957030a28b3SRobert Watson 	gid_t sgid)
958030a28b3SRobert Watson {
959030a28b3SRobert Watson 
960030a28b3SRobert Watson 	return (0);
961030a28b3SRobert Watson }
962030a28b3SRobert Watson 
963030a28b3SRobert Watson static int
9647f53207bSRobert Watson stub_check_socket_accept(struct ucred *cred, struct socket *socket,
9657f53207bSRobert Watson     struct label *socketlabel)
9667f53207bSRobert Watson {
9677f53207bSRobert Watson 
9687f53207bSRobert Watson 	return (0);
9697f53207bSRobert Watson }
9707f53207bSRobert Watson 
9717f53207bSRobert Watson static int
9721c3f91cdSRobert Watson stub_check_socket_bind(struct ucred *cred, struct socket *socket,
973d8a7b7a3SRobert Watson     struct label *socketlabel, struct sockaddr *sockaddr)
974d8a7b7a3SRobert Watson {
975d8a7b7a3SRobert Watson 
976d8a7b7a3SRobert Watson 	return (0);
977d8a7b7a3SRobert Watson }
978d8a7b7a3SRobert Watson 
979d8a7b7a3SRobert Watson static int
9801c3f91cdSRobert Watson stub_check_socket_connect(struct ucred *cred, struct socket *socket,
981d8a7b7a3SRobert Watson     struct label *socketlabel, struct sockaddr *sockaddr)
982d8a7b7a3SRobert Watson {
983d8a7b7a3SRobert Watson 
984d8a7b7a3SRobert Watson 	return (0);
985d8a7b7a3SRobert Watson }
986d8a7b7a3SRobert Watson 
987d8a7b7a3SRobert Watson static int
9886758f88eSRobert Watson stub_check_socket_create(struct ucred *cred, int domain, int type,
9896758f88eSRobert Watson     int protocol)
9906758f88eSRobert Watson {
9916758f88eSRobert Watson 
9926758f88eSRobert Watson 	return (0);
9936758f88eSRobert Watson }
9946758f88eSRobert Watson 
9956758f88eSRobert Watson static int
9961c3f91cdSRobert Watson stub_check_socket_deliver(struct socket *so, struct label *socketlabel,
997fb95b5d3SRobert Watson     struct mbuf *m, struct label *mbuflabel)
998d8a7b7a3SRobert Watson {
999d8a7b7a3SRobert Watson 
1000d8a7b7a3SRobert Watson 	return (0);
1001d8a7b7a3SRobert Watson }
1002d8a7b7a3SRobert Watson 
1003d8a7b7a3SRobert Watson static int
10041c3f91cdSRobert Watson stub_check_socket_listen(struct ucred *cred, struct socket *so,
1005fb95b5d3SRobert Watson     struct label *socketlabel)
1006d8a7b7a3SRobert Watson {
1007d8a7b7a3SRobert Watson 
1008d8a7b7a3SRobert Watson 	return (0);
1009d8a7b7a3SRobert Watson }
1010d8a7b7a3SRobert Watson 
1011d8a7b7a3SRobert Watson static int
10127f53207bSRobert Watson stub_check_socket_poll(struct ucred *cred, struct socket *so,
10137f53207bSRobert Watson     struct label *socketlabel)
10147f53207bSRobert Watson {
10157f53207bSRobert Watson 
10167f53207bSRobert Watson 	return (0);
10177f53207bSRobert Watson }
10187f53207bSRobert Watson 
10197f53207bSRobert Watson static int
10207f53207bSRobert Watson stub_check_socket_receive(struct ucred *cred, struct socket *so,
10217f53207bSRobert Watson     struct label *socketlabel)
10227f53207bSRobert Watson {
10237f53207bSRobert Watson 
10247f53207bSRobert Watson 	return (0);
10257f53207bSRobert Watson }
10267f53207bSRobert Watson 
10277f53207bSRobert Watson static int
10281c3f91cdSRobert Watson stub_check_socket_relabel(struct ucred *cred, struct socket *socket,
1029d8a7b7a3SRobert Watson     struct label *socketlabel, struct label *newlabel)
1030d8a7b7a3SRobert Watson {
1031d8a7b7a3SRobert Watson 
1032d8a7b7a3SRobert Watson 	return (0);
1033d8a7b7a3SRobert Watson }
10347f53207bSRobert Watson static int
10357f53207bSRobert Watson stub_check_socket_send(struct ucred *cred, struct socket *so,
10367f53207bSRobert Watson     struct label *socketlabel)
10377f53207bSRobert Watson {
10387f53207bSRobert Watson 
10397f53207bSRobert Watson 	return (0);
10407f53207bSRobert Watson }
10417f53207bSRobert Watson 
10427f53207bSRobert Watson static int
10437f53207bSRobert Watson stub_check_socket_stat(struct ucred *cred, struct socket *so,
10447f53207bSRobert Watson     struct label *socketlabel)
10457f53207bSRobert Watson {
10467f53207bSRobert Watson 
10477f53207bSRobert Watson 	return (0);
10487f53207bSRobert Watson }
1049d8a7b7a3SRobert Watson 
1050d8a7b7a3SRobert Watson static int
10511c3f91cdSRobert Watson stub_check_socket_visible(struct ucred *cred, struct socket *socket,
1052d8a7b7a3SRobert Watson    struct label *socketlabel)
1053d8a7b7a3SRobert Watson {
1054d8a7b7a3SRobert Watson 
1055d8a7b7a3SRobert Watson 	return (0);
1056d8a7b7a3SRobert Watson }
1057d8a7b7a3SRobert Watson 
1058d8a7b7a3SRobert Watson static int
10591c3f91cdSRobert Watson stub_check_sysarch_ioperm(struct ucred *cred)
106009de2dc2SRobert Watson {
106109de2dc2SRobert Watson 
106209de2dc2SRobert Watson 	return (0);
106309de2dc2SRobert Watson }
106409de2dc2SRobert Watson 
106509de2dc2SRobert Watson static int
10661c3f91cdSRobert Watson stub_check_system_acct(struct ucred *cred, struct vnode *vp,
106709de2dc2SRobert Watson     struct label *vlabel)
106809de2dc2SRobert Watson {
106909de2dc2SRobert Watson 
107009de2dc2SRobert Watson 	return (0);
107109de2dc2SRobert Watson }
107209de2dc2SRobert Watson 
107309de2dc2SRobert Watson static int
10741c3f91cdSRobert Watson stub_check_system_reboot(struct ucred *cred, int how)
1075927f6069SRobert Watson {
1076927f6069SRobert Watson 
1077927f6069SRobert Watson 	return (0);
1078927f6069SRobert Watson }
1079927f6069SRobert Watson 
1080927f6069SRobert Watson static int
10811c3f91cdSRobert Watson stub_check_system_settime(struct ucred *cred)
108209de2dc2SRobert Watson {
108309de2dc2SRobert Watson 
108409de2dc2SRobert Watson 	return (0);
108509de2dc2SRobert Watson }
108609de2dc2SRobert Watson 
108709de2dc2SRobert Watson static int
10881c3f91cdSRobert Watson stub_check_system_swapon(struct ucred *cred, struct vnode *vp,
1089927f6069SRobert Watson     struct label *label)
1090927f6069SRobert Watson {
1091927f6069SRobert Watson 
1092927f6069SRobert Watson 	return (0);
1093927f6069SRobert Watson }
1094927f6069SRobert Watson 
1095927f6069SRobert Watson static int
10961c3f91cdSRobert Watson stub_check_system_swapoff(struct ucred *cred, struct vnode *vp,
109709de2dc2SRobert Watson     struct label *label)
109809de2dc2SRobert Watson {
109909de2dc2SRobert Watson 
110009de2dc2SRobert Watson 	return (0);
110109de2dc2SRobert Watson }
110209de2dc2SRobert Watson 
110309de2dc2SRobert Watson static int
110463dba32bSPawel Jakub Dawidek stub_check_system_sysctl(struct ucred *cred, struct sysctl_oid *oidp,
110563dba32bSPawel Jakub Dawidek     void *arg1, int arg2, struct sysctl_req *req)
1106927f6069SRobert Watson {
1107927f6069SRobert Watson 
1108927f6069SRobert Watson 	return (0);
1109927f6069SRobert Watson }
1110927f6069SRobert Watson 
1111927f6069SRobert Watson static int
11121c3f91cdSRobert Watson stub_check_vnode_access(struct ucred *cred, struct vnode *vp,
1113b914de36SRobert Watson     struct label *label, int acc_mode)
1114d8a7b7a3SRobert Watson {
1115d8a7b7a3SRobert Watson 
1116d8a7b7a3SRobert Watson 	return (0);
1117d8a7b7a3SRobert Watson }
1118d8a7b7a3SRobert Watson 
1119d8a7b7a3SRobert Watson static int
11201c3f91cdSRobert Watson stub_check_vnode_chdir(struct ucred *cred, struct vnode *dvp,
1121d8a7b7a3SRobert Watson     struct label *dlabel)
1122d8a7b7a3SRobert Watson {
1123d8a7b7a3SRobert Watson 
1124d8a7b7a3SRobert Watson 	return (0);
1125d8a7b7a3SRobert Watson }
1126d8a7b7a3SRobert Watson 
1127d8a7b7a3SRobert Watson static int
11281c3f91cdSRobert Watson stub_check_vnode_chroot(struct ucred *cred, struct vnode *dvp,
1129d8a7b7a3SRobert Watson     struct label *dlabel)
1130d8a7b7a3SRobert Watson {
1131d8a7b7a3SRobert Watson 
1132d8a7b7a3SRobert Watson 	return (0);
1133d8a7b7a3SRobert Watson }
1134d8a7b7a3SRobert Watson 
1135d8a7b7a3SRobert Watson static int
11361c3f91cdSRobert Watson stub_check_vnode_create(struct ucred *cred, struct vnode *dvp,
1137d8a7b7a3SRobert Watson     struct label *dlabel, struct componentname *cnp, struct vattr *vap)
1138d8a7b7a3SRobert Watson {
1139d8a7b7a3SRobert Watson 
1140d8a7b7a3SRobert Watson 	return (0);
1141d8a7b7a3SRobert Watson }
1142d8a7b7a3SRobert Watson 
1143d8a7b7a3SRobert Watson static int
11441c3f91cdSRobert Watson stub_check_vnode_delete(struct ucred *cred, struct vnode *dvp,
1145d8a7b7a3SRobert Watson     struct label *dlabel, struct vnode *vp, struct label *label,
1146d8a7b7a3SRobert Watson     struct componentname *cnp)
1147d8a7b7a3SRobert Watson {
1148d8a7b7a3SRobert Watson 
1149d8a7b7a3SRobert Watson 	return (0);
1150d8a7b7a3SRobert Watson }
1151d8a7b7a3SRobert Watson 
1152d8a7b7a3SRobert Watson static int
11531c3f91cdSRobert Watson stub_check_vnode_deleteacl(struct ucred *cred, struct vnode *vp,
1154d8a7b7a3SRobert Watson     struct label *label, acl_type_t type)
1155d8a7b7a3SRobert Watson {
1156d8a7b7a3SRobert Watson 
1157d8a7b7a3SRobert Watson 	return (0);
1158d8a7b7a3SRobert Watson }
1159d8a7b7a3SRobert Watson 
1160d8a7b7a3SRobert Watson static int
116164f00af8SRobert Watson stub_check_vnode_deleteextattr(struct ucred *cred, struct vnode *vp,
116264f00af8SRobert Watson     struct label *label, int attrnamespace, const char *name)
116364f00af8SRobert Watson {
116464f00af8SRobert Watson 
116564f00af8SRobert Watson 	return (0);
116664f00af8SRobert Watson }
116764f00af8SRobert Watson 
116864f00af8SRobert Watson static int
11691c3f91cdSRobert Watson stub_check_vnode_exec(struct ucred *cred, struct vnode *vp,
1170ef5def59SRobert Watson     struct label *label, struct image_params *imgp,
1171ef5def59SRobert Watson     struct label *execlabel)
1172d8a7b7a3SRobert Watson {
1173d8a7b7a3SRobert Watson 
1174d8a7b7a3SRobert Watson 	return (0);
1175d8a7b7a3SRobert Watson }
1176d8a7b7a3SRobert Watson 
1177d8a7b7a3SRobert Watson static int
11781c3f91cdSRobert Watson stub_check_vnode_getacl(struct ucred *cred, struct vnode *vp,
1179d8a7b7a3SRobert Watson     struct label *label, acl_type_t type)
1180d8a7b7a3SRobert Watson {
1181d8a7b7a3SRobert Watson 
1182d8a7b7a3SRobert Watson 	return (0);
1183d8a7b7a3SRobert Watson }
1184d8a7b7a3SRobert Watson 
1185d8a7b7a3SRobert Watson static int
11861c3f91cdSRobert Watson stub_check_vnode_getextattr(struct ucred *cred, struct vnode *vp,
1187d8a7b7a3SRobert Watson     struct label *label, int attrnamespace, const char *name, struct uio *uio)
1188d8a7b7a3SRobert Watson {
1189d8a7b7a3SRobert Watson 
1190d8a7b7a3SRobert Watson 	return (0);
1191d8a7b7a3SRobert Watson }
1192d8a7b7a3SRobert Watson 
1193d8a7b7a3SRobert Watson static int
11941c3f91cdSRobert Watson stub_check_vnode_link(struct ucred *cred, struct vnode *dvp,
1195c27b50f5SRobert Watson     struct label *dlabel, struct vnode *vp, struct label *label,
1196c27b50f5SRobert Watson     struct componentname *cnp)
1197c27b50f5SRobert Watson {
1198c27b50f5SRobert Watson 
1199c27b50f5SRobert Watson 	return (0);
1200c27b50f5SRobert Watson }
1201c27b50f5SRobert Watson 
1202c27b50f5SRobert Watson static int
120364f00af8SRobert Watson stub_check_vnode_listextattr(struct ucred *cred, struct vnode *vp,
120464f00af8SRobert Watson     struct label *label, int attrnamespace)
120564f00af8SRobert Watson {
120664f00af8SRobert Watson 
120764f00af8SRobert Watson 	return (0);
120864f00af8SRobert Watson }
120964f00af8SRobert Watson 
121064f00af8SRobert Watson static int
12111c3f91cdSRobert Watson stub_check_vnode_lookup(struct ucred *cred, struct vnode *dvp,
1212d8a7b7a3SRobert Watson     struct label *dlabel, struct componentname *cnp)
1213d8a7b7a3SRobert Watson {
1214d8a7b7a3SRobert Watson 
1215d8a7b7a3SRobert Watson 	return (0);
1216d8a7b7a3SRobert Watson }
1217d8a7b7a3SRobert Watson 
1218d8a7b7a3SRobert Watson static int
12191c3f91cdSRobert Watson stub_check_vnode_mmap(struct ucred *cred, struct vnode *vp,
1220c92163dcSChristian S.J. Peron     struct label *label, int prot, int flags)
1221e183f80eSRobert Watson {
1222e183f80eSRobert Watson 
1223e183f80eSRobert Watson 	return (0);
1224e183f80eSRobert Watson }
1225e183f80eSRobert Watson 
1226e183f80eSRobert Watson static int
12271c3f91cdSRobert Watson stub_check_vnode_open(struct ucred *cred, struct vnode *vp,
1228b914de36SRobert Watson     struct label *filelabel, int acc_mode)
1229d8a7b7a3SRobert Watson {
1230d8a7b7a3SRobert Watson 
1231d8a7b7a3SRobert Watson 	return (0);
1232d8a7b7a3SRobert Watson }
1233d8a7b7a3SRobert Watson 
1234d8a7b7a3SRobert Watson static int
12351c3f91cdSRobert Watson stub_check_vnode_poll(struct ucred *active_cred, struct ucred *file_cred,
1236177142e4SRobert Watson     struct vnode *vp, struct label *label)
12377f724f8bSRobert Watson {
12387f724f8bSRobert Watson 
12397f724f8bSRobert Watson 	return (0);
12407f724f8bSRobert Watson }
12417f724f8bSRobert Watson 
12427f724f8bSRobert Watson static int
12431c3f91cdSRobert Watson stub_check_vnode_read(struct ucred *active_cred, struct ucred *file_cred,
1244177142e4SRobert Watson     struct vnode *vp, struct label *label)
12457f724f8bSRobert Watson {
12467f724f8bSRobert Watson 
12477f724f8bSRobert Watson 	return (0);
12487f724f8bSRobert Watson }
12497f724f8bSRobert Watson 
12507f724f8bSRobert Watson static int
12511c3f91cdSRobert Watson stub_check_vnode_readdir(struct ucred *cred, struct vnode *vp,
1252d8a7b7a3SRobert Watson     struct label *dlabel)
1253d8a7b7a3SRobert Watson {
1254d8a7b7a3SRobert Watson 
1255d8a7b7a3SRobert Watson 	return (0);
1256d8a7b7a3SRobert Watson }
1257d8a7b7a3SRobert Watson 
1258d8a7b7a3SRobert Watson static int
12591c3f91cdSRobert Watson stub_check_vnode_readlink(struct ucred *cred, struct vnode *vp,
1260d8a7b7a3SRobert Watson     struct label *vnodelabel)
1261d8a7b7a3SRobert Watson {
1262d8a7b7a3SRobert Watson 
1263d8a7b7a3SRobert Watson 	return (0);
1264d8a7b7a3SRobert Watson }
1265d8a7b7a3SRobert Watson 
1266d8a7b7a3SRobert Watson static int
12671c3f91cdSRobert Watson stub_check_vnode_relabel(struct ucred *cred, struct vnode *vp,
1268d8a7b7a3SRobert Watson     struct label *vnodelabel, struct label *newlabel)
1269d8a7b7a3SRobert Watson {
1270d8a7b7a3SRobert Watson 
1271d8a7b7a3SRobert Watson 	return (0);
1272d8a7b7a3SRobert Watson }
1273d8a7b7a3SRobert Watson 
1274d8a7b7a3SRobert Watson static int
12751c3f91cdSRobert Watson stub_check_vnode_rename_from(struct ucred *cred, struct vnode *dvp,
1276d8a7b7a3SRobert Watson     struct label *dlabel, struct vnode *vp, struct label *label,
1277d8a7b7a3SRobert Watson     struct componentname *cnp)
1278d8a7b7a3SRobert Watson {
1279d8a7b7a3SRobert Watson 
1280d8a7b7a3SRobert Watson 	return (0);
1281d8a7b7a3SRobert Watson }
1282d8a7b7a3SRobert Watson 
1283d8a7b7a3SRobert Watson static int
12841c3f91cdSRobert Watson stub_check_vnode_rename_to(struct ucred *cred, struct vnode *dvp,
1285d8a7b7a3SRobert Watson     struct label *dlabel, struct vnode *vp, struct label *label, int samedir,
1286d8a7b7a3SRobert Watson     struct componentname *cnp)
1287d8a7b7a3SRobert Watson {
1288d8a7b7a3SRobert Watson 
1289d8a7b7a3SRobert Watson 	return (0);
1290d8a7b7a3SRobert Watson }
1291d8a7b7a3SRobert Watson 
1292d8a7b7a3SRobert Watson static int
12931c3f91cdSRobert Watson stub_check_vnode_revoke(struct ucred *cred, struct vnode *vp,
1294d8a7b7a3SRobert Watson     struct label *label)
1295d8a7b7a3SRobert Watson {
1296d8a7b7a3SRobert Watson 
1297d8a7b7a3SRobert Watson 	return (0);
1298d8a7b7a3SRobert Watson }
1299d8a7b7a3SRobert Watson 
1300d8a7b7a3SRobert Watson static int
13011c3f91cdSRobert Watson stub_check_vnode_setacl(struct ucred *cred, struct vnode *vp,
1302d8a7b7a3SRobert Watson     struct label *label, acl_type_t type, struct acl *acl)
1303d8a7b7a3SRobert Watson {
1304d8a7b7a3SRobert Watson 
1305d8a7b7a3SRobert Watson 	return (0);
1306d8a7b7a3SRobert Watson }
1307d8a7b7a3SRobert Watson 
1308d8a7b7a3SRobert Watson static int
13091c3f91cdSRobert Watson stub_check_vnode_setextattr(struct ucred *cred, struct vnode *vp,
1310d8a7b7a3SRobert Watson     struct label *label, int attrnamespace, const char *name, struct uio *uio)
1311d8a7b7a3SRobert Watson {
1312d8a7b7a3SRobert Watson 
1313d8a7b7a3SRobert Watson 	return (0);
1314d8a7b7a3SRobert Watson }
1315d8a7b7a3SRobert Watson 
1316d8a7b7a3SRobert Watson static int
13171c3f91cdSRobert Watson stub_check_vnode_setflags(struct ucred *cred, struct vnode *vp,
1318d8a7b7a3SRobert Watson     struct label *label, u_long flags)
1319d8a7b7a3SRobert Watson {
1320d8a7b7a3SRobert Watson 
1321d8a7b7a3SRobert Watson 	return (0);
1322d8a7b7a3SRobert Watson }
1323d8a7b7a3SRobert Watson 
1324d8a7b7a3SRobert Watson static int
13251c3f91cdSRobert Watson stub_check_vnode_setmode(struct ucred *cred, struct vnode *vp,
1326d8a7b7a3SRobert Watson     struct label *label, mode_t mode)
1327d8a7b7a3SRobert Watson {
1328d8a7b7a3SRobert Watson 
1329d8a7b7a3SRobert Watson 	return (0);
1330d8a7b7a3SRobert Watson }
1331d8a7b7a3SRobert Watson 
1332d8a7b7a3SRobert Watson static int
13331c3f91cdSRobert Watson stub_check_vnode_setowner(struct ucred *cred, struct vnode *vp,
1334d8a7b7a3SRobert Watson     struct label *label, uid_t uid, gid_t gid)
1335d8a7b7a3SRobert Watson {
1336d8a7b7a3SRobert Watson 
1337d8a7b7a3SRobert Watson 	return (0);
1338d8a7b7a3SRobert Watson }
1339d8a7b7a3SRobert Watson 
1340d8a7b7a3SRobert Watson static int
13411c3f91cdSRobert Watson stub_check_vnode_setutimes(struct ucred *cred, struct vnode *vp,
1342d8a7b7a3SRobert Watson     struct label *label, struct timespec atime, struct timespec mtime)
1343d8a7b7a3SRobert Watson {
1344d8a7b7a3SRobert Watson 
1345d8a7b7a3SRobert Watson 	return (0);
1346d8a7b7a3SRobert Watson }
1347d8a7b7a3SRobert Watson 
1348d8a7b7a3SRobert Watson static int
13491c3f91cdSRobert Watson stub_check_vnode_stat(struct ucred *active_cred, struct ucred *file_cred,
1350177142e4SRobert Watson     struct vnode *vp, struct label *label)
1351d8a7b7a3SRobert Watson {
1352d8a7b7a3SRobert Watson 
1353d8a7b7a3SRobert Watson 	return (0);
1354d8a7b7a3SRobert Watson }
1355d8a7b7a3SRobert Watson 
13567f724f8bSRobert Watson static int
13571c3f91cdSRobert Watson stub_check_vnode_write(struct ucred *active_cred,
1358177142e4SRobert Watson     struct ucred *file_cred, struct vnode *vp, struct label *label)
13597f724f8bSRobert Watson {
13607f724f8bSRobert Watson 
13617f724f8bSRobert Watson 	return (0);
13627f724f8bSRobert Watson }
13637f724f8bSRobert Watson 
1364403b781eSRobert Watson static int
1365403b781eSRobert Watson stub_priv_check(struct ucred *cred, int priv)
1366403b781eSRobert Watson {
1367403b781eSRobert Watson 
1368403b781eSRobert Watson 	return (0);
1369403b781eSRobert Watson }
1370403b781eSRobert Watson 
1371403b781eSRobert Watson static int
1372403b781eSRobert Watson stub_priv_grant(struct ucred *cred, int priv)
1373403b781eSRobert Watson {
1374403b781eSRobert Watson 
1375403b781eSRobert Watson 	return (EPERM);
1376403b781eSRobert Watson }
1377403b781eSRobert Watson 
13781c3f91cdSRobert Watson static struct mac_policy_ops mac_stub_ops =
1379d8a7b7a3SRobert Watson {
13801c3f91cdSRobert Watson 	.mpo_destroy = stub_destroy,
13811c3f91cdSRobert Watson 	.mpo_init = stub_init,
13821c3f91cdSRobert Watson 	.mpo_syscall = stub_syscall,
13831c3f91cdSRobert Watson 	.mpo_init_bpfdesc_label = stub_init_label,
13841c3f91cdSRobert Watson 	.mpo_init_cred_label = stub_init_label,
13851c3f91cdSRobert Watson 	.mpo_init_devfsdirent_label = stub_init_label,
13861c3f91cdSRobert Watson 	.mpo_init_ifnet_label = stub_init_label,
1387a557af22SRobert Watson 	.mpo_init_inpcb_label = stub_init_label_waitcheck,
1388ba53d9c9SRobert Watson 	.mpo_init_sysv_msgmsg_label = stub_init_label,
1389ba53d9c9SRobert Watson 	.mpo_init_sysv_msgqueue_label = stub_init_label,
13903831e7d7SRobert Watson 	.mpo_init_sysv_sem_label = stub_init_label,
1391ba53d9c9SRobert Watson 	.mpo_init_sysv_shm_label = stub_init_label,
13921c3f91cdSRobert Watson 	.mpo_init_ipq_label = stub_init_label_waitcheck,
13931c3f91cdSRobert Watson 	.mpo_init_mbuf_label = stub_init_label_waitcheck,
13941c3f91cdSRobert Watson 	.mpo_init_mount_label = stub_init_label,
13951c3f91cdSRobert Watson 	.mpo_init_mount_fs_label = stub_init_label,
13961c3f91cdSRobert Watson 	.mpo_init_pipe_label = stub_init_label,
139752648411SRobert Watson 	.mpo_init_posix_sem_label = stub_init_label,
13981c3f91cdSRobert Watson 	.mpo_init_socket_label = stub_init_label_waitcheck,
13991c3f91cdSRobert Watson 	.mpo_init_socket_peer_label = stub_init_label_waitcheck,
14001c3f91cdSRobert Watson 	.mpo_init_vnode_label = stub_init_label,
14011c3f91cdSRobert Watson 	.mpo_destroy_bpfdesc_label = stub_destroy_label,
14021c3f91cdSRobert Watson 	.mpo_destroy_cred_label = stub_destroy_label,
14031c3f91cdSRobert Watson 	.mpo_destroy_devfsdirent_label = stub_destroy_label,
14041c3f91cdSRobert Watson 	.mpo_destroy_ifnet_label = stub_destroy_label,
1405a557af22SRobert Watson 	.mpo_destroy_inpcb_label = stub_destroy_label,
1406ba53d9c9SRobert Watson 	.mpo_destroy_sysv_msgmsg_label = stub_destroy_label,
1407ba53d9c9SRobert Watson 	.mpo_destroy_sysv_msgqueue_label = stub_destroy_label,
14083831e7d7SRobert Watson 	.mpo_destroy_sysv_sem_label = stub_destroy_label,
1409ba53d9c9SRobert Watson 	.mpo_destroy_sysv_shm_label = stub_destroy_label,
14101c3f91cdSRobert Watson 	.mpo_destroy_ipq_label = stub_destroy_label,
14111c3f91cdSRobert Watson 	.mpo_destroy_mbuf_label = stub_destroy_label,
14121c3f91cdSRobert Watson 	.mpo_destroy_mount_label = stub_destroy_label,
14131c3f91cdSRobert Watson 	.mpo_destroy_mount_fs_label = stub_destroy_label,
14141c3f91cdSRobert Watson 	.mpo_destroy_pipe_label = stub_destroy_label,
141552648411SRobert Watson 	.mpo_destroy_posix_sem_label = stub_destroy_label,
14161c3f91cdSRobert Watson 	.mpo_destroy_socket_label = stub_destroy_label,
14171c3f91cdSRobert Watson 	.mpo_destroy_socket_peer_label = stub_destroy_label,
14181c3f91cdSRobert Watson 	.mpo_destroy_vnode_label = stub_destroy_label,
141956d9e932SRobert Watson 	.mpo_copy_cred_label = stub_copy_label,
14202220907bSRobert Watson 	.mpo_copy_ifnet_label = stub_copy_label,
14210196273bSRobert Watson 	.mpo_copy_mbuf_label = stub_copy_label,
14220196273bSRobert Watson 	.mpo_copy_pipe_label = stub_copy_label,
1423b0323ea3SRobert Watson 	.mpo_copy_socket_label = stub_copy_label,
14240196273bSRobert Watson 	.mpo_copy_vnode_label = stub_copy_label,
14251c3f91cdSRobert Watson 	.mpo_externalize_cred_label = stub_externalize_label,
14261c3f91cdSRobert Watson 	.mpo_externalize_ifnet_label = stub_externalize_label,
14271c3f91cdSRobert Watson 	.mpo_externalize_pipe_label = stub_externalize_label,
14281c3f91cdSRobert Watson 	.mpo_externalize_socket_label = stub_externalize_label,
14291c3f91cdSRobert Watson 	.mpo_externalize_socket_peer_label = stub_externalize_label,
14301c3f91cdSRobert Watson 	.mpo_externalize_vnode_label = stub_externalize_label,
14311c3f91cdSRobert Watson 	.mpo_internalize_cred_label = stub_internalize_label,
14321c3f91cdSRobert Watson 	.mpo_internalize_ifnet_label = stub_internalize_label,
14331c3f91cdSRobert Watson 	.mpo_internalize_pipe_label = stub_internalize_label,
14341c3f91cdSRobert Watson 	.mpo_internalize_socket_label = stub_internalize_label,
14351c3f91cdSRobert Watson 	.mpo_internalize_vnode_label = stub_internalize_label,
14361c3f91cdSRobert Watson 	.mpo_associate_vnode_devfs = stub_associate_vnode_devfs,
14371c3f91cdSRobert Watson 	.mpo_associate_vnode_extattr = stub_associate_vnode_extattr,
14381c3f91cdSRobert Watson 	.mpo_associate_vnode_singlelabel = stub_associate_vnode_singlelabel,
14391c3f91cdSRobert Watson 	.mpo_create_devfs_device = stub_create_devfs_device,
14401c3f91cdSRobert Watson 	.mpo_create_devfs_directory = stub_create_devfs_directory,
14411c3f91cdSRobert Watson 	.mpo_create_devfs_symlink = stub_create_devfs_symlink,
1442ba53d9c9SRobert Watson 	.mpo_create_sysv_msgmsg = stub_create_sysv_msgmsg,
1443ba53d9c9SRobert Watson 	.mpo_create_sysv_msgqueue = stub_create_sysv_msgqueue,
14443831e7d7SRobert Watson 	.mpo_create_sysv_sem = stub_create_sysv_sem,
1445ba53d9c9SRobert Watson 	.mpo_create_sysv_shm = stub_create_sysv_shm,
14461c3f91cdSRobert Watson 	.mpo_create_vnode_extattr = stub_create_vnode_extattr,
14471c3f91cdSRobert Watson 	.mpo_create_mount = stub_create_mount,
14481c3f91cdSRobert Watson 	.mpo_relabel_vnode = stub_relabel_vnode,
14491c3f91cdSRobert Watson 	.mpo_setlabel_vnode_extattr = stub_setlabel_vnode_extattr,
14501c3f91cdSRobert Watson 	.mpo_update_devfsdirent = stub_update_devfsdirent,
14511c3f91cdSRobert Watson 	.mpo_create_mbuf_from_socket = stub_create_mbuf_from_socket,
14521c3f91cdSRobert Watson 	.mpo_create_pipe = stub_create_pipe,
145352648411SRobert Watson 	.mpo_create_posix_sem = stub_create_posix_sem,
14541c3f91cdSRobert Watson 	.mpo_create_socket = stub_create_socket,
14551c3f91cdSRobert Watson 	.mpo_create_socket_from_socket = stub_create_socket_from_socket,
14561c3f91cdSRobert Watson 	.mpo_relabel_pipe = stub_relabel_pipe,
14571c3f91cdSRobert Watson 	.mpo_relabel_socket = stub_relabel_socket,
14581c3f91cdSRobert Watson 	.mpo_set_socket_peer_from_mbuf = stub_set_socket_peer_from_mbuf,
14591c3f91cdSRobert Watson 	.mpo_set_socket_peer_from_socket = stub_set_socket_peer_from_socket,
14601c3f91cdSRobert Watson 	.mpo_create_bpfdesc = stub_create_bpfdesc,
14611c3f91cdSRobert Watson 	.mpo_create_ifnet = stub_create_ifnet,
1462a557af22SRobert Watson 	.mpo_create_inpcb_from_socket = stub_create_inpcb_from_socket,
14631c3f91cdSRobert Watson 	.mpo_create_ipq = stub_create_ipq,
14641c3f91cdSRobert Watson 	.mpo_create_datagram_from_ipq = stub_create_datagram_from_ipq,
14651c3f91cdSRobert Watson 	.mpo_create_fragment = stub_create_fragment,
14662d92ec98SRobert Watson 	.mpo_create_mbuf_from_inpcb = stub_create_mbuf_from_inpcb,
14671c3f91cdSRobert Watson 	.mpo_create_mbuf_linklayer = stub_create_mbuf_linklayer,
14681c3f91cdSRobert Watson 	.mpo_create_mbuf_from_bpfdesc = stub_create_mbuf_from_bpfdesc,
14691c3f91cdSRobert Watson 	.mpo_create_mbuf_from_ifnet = stub_create_mbuf_from_ifnet,
14701c3f91cdSRobert Watson 	.mpo_create_mbuf_multicast_encap = stub_create_mbuf_multicast_encap,
14711c3f91cdSRobert Watson 	.mpo_create_mbuf_netlayer = stub_create_mbuf_netlayer,
14721c3f91cdSRobert Watson 	.mpo_fragment_match = stub_fragment_match,
147364f00af8SRobert Watson 	.mpo_reflect_mbuf_icmp = stub_reflect_mbuf_icmp,
147464f00af8SRobert Watson 	.mpo_reflect_mbuf_tcp = stub_reflect_mbuf_tcp,
14751c3f91cdSRobert Watson 	.mpo_relabel_ifnet = stub_relabel_ifnet,
14761c3f91cdSRobert Watson 	.mpo_update_ipq = stub_update_ipq,
1477a557af22SRobert Watson 	.mpo_inpcb_sosetlabel = stub_inpcb_sosetlabel,
14781c3f91cdSRobert Watson 	.mpo_execve_transition = stub_execve_transition,
14791c3f91cdSRobert Watson 	.mpo_execve_will_transition = stub_execve_will_transition,
14801c3f91cdSRobert Watson 	.mpo_create_proc0 = stub_create_proc0,
14811c3f91cdSRobert Watson 	.mpo_create_proc1 = stub_create_proc1,
14821c3f91cdSRobert Watson 	.mpo_relabel_cred = stub_relabel_cred,
14831c3f91cdSRobert Watson 	.mpo_thread_userret = stub_thread_userret,
1484ba53d9c9SRobert Watson 	.mpo_cleanup_sysv_msgmsg = stub_cleanup_sysv_msgmsg,
1485ba53d9c9SRobert Watson 	.mpo_cleanup_sysv_msgqueue = stub_cleanup_sysv_msgqueue,
14863831e7d7SRobert Watson 	.mpo_cleanup_sysv_sem = stub_cleanup_sysv_sem,
1487ba53d9c9SRobert Watson 	.mpo_cleanup_sysv_shm = stub_cleanup_sysv_shm,
14881c3f91cdSRobert Watson 	.mpo_check_bpfdesc_receive = stub_check_bpfdesc_receive,
14891c3f91cdSRobert Watson 	.mpo_check_cred_relabel = stub_check_cred_relabel,
14901c3f91cdSRobert Watson 	.mpo_check_cred_visible = stub_check_cred_visible,
14911c3f91cdSRobert Watson 	.mpo_check_ifnet_relabel = stub_check_ifnet_relabel,
14921c3f91cdSRobert Watson 	.mpo_check_ifnet_transmit = stub_check_ifnet_transmit,
1493a557af22SRobert Watson 	.mpo_check_inpcb_deliver = stub_check_inpcb_deliver,
1494ba53d9c9SRobert Watson 	.mpo_check_sysv_msgmsq = stub_check_sysv_msgmsq,
1495ba53d9c9SRobert Watson 	.mpo_check_sysv_msgrcv = stub_check_sysv_msgrcv,
1496ba53d9c9SRobert Watson 	.mpo_check_sysv_msgrmid = stub_check_sysv_msgrmid,
1497ba53d9c9SRobert Watson 	.mpo_check_sysv_msqget = stub_check_sysv_msqget,
1498ba53d9c9SRobert Watson 	.mpo_check_sysv_msqsnd = stub_check_sysv_msqsnd,
1499ba53d9c9SRobert Watson 	.mpo_check_sysv_msqrcv = stub_check_sysv_msqrcv,
1500ba53d9c9SRobert Watson 	.mpo_check_sysv_msqctl = stub_check_sysv_msqctl,
1501ba53d9c9SRobert Watson 	.mpo_check_sysv_semctl = stub_check_sysv_semctl,
1502ba53d9c9SRobert Watson 	.mpo_check_sysv_semget = stub_check_sysv_semget,
1503ba53d9c9SRobert Watson 	.mpo_check_sysv_semop = stub_check_sysv_semop,
1504ba53d9c9SRobert Watson 	.mpo_check_sysv_shmat = stub_check_sysv_shmat,
1505ba53d9c9SRobert Watson 	.mpo_check_sysv_shmctl = stub_check_sysv_shmctl,
1506ba53d9c9SRobert Watson 	.mpo_check_sysv_shmdt = stub_check_sysv_shmdt,
1507ba53d9c9SRobert Watson 	.mpo_check_sysv_shmget = stub_check_sysv_shmget,
15081c3f91cdSRobert Watson 	.mpo_check_kenv_dump = stub_check_kenv_dump,
15091c3f91cdSRobert Watson 	.mpo_check_kenv_get = stub_check_kenv_get,
15101c3f91cdSRobert Watson 	.mpo_check_kenv_set = stub_check_kenv_set,
15111c3f91cdSRobert Watson 	.mpo_check_kenv_unset = stub_check_kenv_unset,
15121c3f91cdSRobert Watson 	.mpo_check_kld_load = stub_check_kld_load,
15131c3f91cdSRobert Watson 	.mpo_check_kld_stat = stub_check_kld_stat,
15141c3f91cdSRobert Watson 	.mpo_check_kld_unload = stub_check_kld_unload,
15151c3f91cdSRobert Watson 	.mpo_check_mount_stat = stub_check_mount_stat,
15161c3f91cdSRobert Watson 	.mpo_check_pipe_ioctl = stub_check_pipe_ioctl,
15171c3f91cdSRobert Watson 	.mpo_check_pipe_poll = stub_check_pipe_poll,
15181c3f91cdSRobert Watson 	.mpo_check_pipe_read = stub_check_pipe_read,
15191c3f91cdSRobert Watson 	.mpo_check_pipe_relabel = stub_check_pipe_relabel,
15201c3f91cdSRobert Watson 	.mpo_check_pipe_stat = stub_check_pipe_stat,
15211c3f91cdSRobert Watson 	.mpo_check_pipe_write = stub_check_pipe_write,
152252648411SRobert Watson 	.mpo_check_posix_sem_destroy = stub_check_posix_sem_destroy,
152352648411SRobert Watson 	.mpo_check_posix_sem_getvalue = stub_check_posix_sem_getvalue,
152452648411SRobert Watson 	.mpo_check_posix_sem_open = stub_check_posix_sem_open,
152552648411SRobert Watson 	.mpo_check_posix_sem_post = stub_check_posix_sem_post,
152652648411SRobert Watson 	.mpo_check_posix_sem_unlink = stub_check_posix_sem_unlink,
152752648411SRobert Watson 	.mpo_check_posix_sem_wait = stub_check_posix_sem_wait,
15281c3f91cdSRobert Watson 	.mpo_check_proc_debug = stub_check_proc_debug,
15291c3f91cdSRobert Watson 	.mpo_check_proc_sched = stub_check_proc_sched,
1530030a28b3SRobert Watson 	.mpo_check_proc_setuid = stub_check_proc_setuid,
1531030a28b3SRobert Watson 	.mpo_check_proc_seteuid = stub_check_proc_seteuid,
1532030a28b3SRobert Watson 	.mpo_check_proc_setgid = stub_check_proc_setgid,
1533030a28b3SRobert Watson 	.mpo_check_proc_setegid = stub_check_proc_setegid,
1534030a28b3SRobert Watson 	.mpo_check_proc_setgroups = stub_check_proc_setgroups,
1535030a28b3SRobert Watson 	.mpo_check_proc_setreuid = stub_check_proc_setreuid,
1536030a28b3SRobert Watson 	.mpo_check_proc_setregid = stub_check_proc_setregid,
1537030a28b3SRobert Watson 	.mpo_check_proc_setresuid = stub_check_proc_setresuid,
1538030a28b3SRobert Watson 	.mpo_check_proc_setresgid = stub_check_proc_setresgid,
15391c3f91cdSRobert Watson 	.mpo_check_proc_signal = stub_check_proc_signal,
1540babe9a2bSRobert Watson 	.mpo_check_proc_wait = stub_check_proc_wait,
15417f53207bSRobert Watson 	.mpo_check_socket_accept = stub_check_socket_accept,
15421c3f91cdSRobert Watson 	.mpo_check_socket_bind = stub_check_socket_bind,
15431c3f91cdSRobert Watson 	.mpo_check_socket_connect = stub_check_socket_connect,
15446758f88eSRobert Watson 	.mpo_check_socket_create = stub_check_socket_create,
15451c3f91cdSRobert Watson 	.mpo_check_socket_deliver = stub_check_socket_deliver,
15461c3f91cdSRobert Watson 	.mpo_check_socket_listen = stub_check_socket_listen,
15477f53207bSRobert Watson 	.mpo_check_socket_poll = stub_check_socket_poll,
15487f53207bSRobert Watson 	.mpo_check_socket_receive = stub_check_socket_receive,
15491c3f91cdSRobert Watson 	.mpo_check_socket_relabel = stub_check_socket_relabel,
15507f53207bSRobert Watson 	.mpo_check_socket_send = stub_check_socket_send,
15517f53207bSRobert Watson 	.mpo_check_socket_stat = stub_check_socket_stat,
15521c3f91cdSRobert Watson 	.mpo_check_socket_visible = stub_check_socket_visible,
15531c3f91cdSRobert Watson 	.mpo_check_sysarch_ioperm = stub_check_sysarch_ioperm,
15541c3f91cdSRobert Watson 	.mpo_check_system_acct = stub_check_system_acct,
15551c3f91cdSRobert Watson 	.mpo_check_system_reboot = stub_check_system_reboot,
15561c3f91cdSRobert Watson 	.mpo_check_system_settime = stub_check_system_settime,
15571c3f91cdSRobert Watson 	.mpo_check_system_swapon = stub_check_system_swapon,
15581c3f91cdSRobert Watson 	.mpo_check_system_swapoff = stub_check_system_swapoff,
15591c3f91cdSRobert Watson 	.mpo_check_system_sysctl = stub_check_system_sysctl,
15601c3f91cdSRobert Watson 	.mpo_check_vnode_access = stub_check_vnode_access,
15611c3f91cdSRobert Watson 	.mpo_check_vnode_chdir = stub_check_vnode_chdir,
15621c3f91cdSRobert Watson 	.mpo_check_vnode_chroot = stub_check_vnode_chroot,
15631c3f91cdSRobert Watson 	.mpo_check_vnode_create = stub_check_vnode_create,
15641c3f91cdSRobert Watson 	.mpo_check_vnode_delete = stub_check_vnode_delete,
15651c3f91cdSRobert Watson 	.mpo_check_vnode_deleteacl = stub_check_vnode_deleteacl,
156664f00af8SRobert Watson 	.mpo_check_vnode_deleteextattr = stub_check_vnode_deleteextattr,
15671c3f91cdSRobert Watson 	.mpo_check_vnode_exec = stub_check_vnode_exec,
15681c3f91cdSRobert Watson 	.mpo_check_vnode_getacl = stub_check_vnode_getacl,
15691c3f91cdSRobert Watson 	.mpo_check_vnode_getextattr = stub_check_vnode_getextattr,
15701c3f91cdSRobert Watson 	.mpo_check_vnode_link = stub_check_vnode_link,
157164f00af8SRobert Watson 	.mpo_check_vnode_listextattr = stub_check_vnode_listextattr,
15721c3f91cdSRobert Watson 	.mpo_check_vnode_lookup = stub_check_vnode_lookup,
15731c3f91cdSRobert Watson 	.mpo_check_vnode_mmap = stub_check_vnode_mmap,
15741c3f91cdSRobert Watson 	.mpo_check_vnode_open = stub_check_vnode_open,
15751c3f91cdSRobert Watson 	.mpo_check_vnode_poll = stub_check_vnode_poll,
15761c3f91cdSRobert Watson 	.mpo_check_vnode_read = stub_check_vnode_read,
15771c3f91cdSRobert Watson 	.mpo_check_vnode_readdir = stub_check_vnode_readdir,
15781c3f91cdSRobert Watson 	.mpo_check_vnode_readlink = stub_check_vnode_readlink,
15791c3f91cdSRobert Watson 	.mpo_check_vnode_relabel = stub_check_vnode_relabel,
15801c3f91cdSRobert Watson 	.mpo_check_vnode_rename_from = stub_check_vnode_rename_from,
15811c3f91cdSRobert Watson 	.mpo_check_vnode_rename_to = stub_check_vnode_rename_to,
15821c3f91cdSRobert Watson 	.mpo_check_vnode_revoke = stub_check_vnode_revoke,
15831c3f91cdSRobert Watson 	.mpo_check_vnode_setacl = stub_check_vnode_setacl,
15841c3f91cdSRobert Watson 	.mpo_check_vnode_setextattr = stub_check_vnode_setextattr,
15851c3f91cdSRobert Watson 	.mpo_check_vnode_setflags = stub_check_vnode_setflags,
15861c3f91cdSRobert Watson 	.mpo_check_vnode_setmode = stub_check_vnode_setmode,
15871c3f91cdSRobert Watson 	.mpo_check_vnode_setowner = stub_check_vnode_setowner,
15881c3f91cdSRobert Watson 	.mpo_check_vnode_setutimes = stub_check_vnode_setutimes,
15891c3f91cdSRobert Watson 	.mpo_check_vnode_stat = stub_check_vnode_stat,
15901c3f91cdSRobert Watson 	.mpo_check_vnode_write = stub_check_vnode_write,
1591403b781eSRobert Watson 	.mpo_priv_check = stub_priv_check,
1592403b781eSRobert Watson 	.mpo_priv_grant = stub_priv_grant,
1593d8a7b7a3SRobert Watson };
1594d8a7b7a3SRobert Watson 
15951c3f91cdSRobert Watson MAC_POLICY_SET(&mac_stub_ops, mac_stub, "TrustedBSD MAC/Stub",
1596740348c4SRobert Watson     MPC_LOADTIME_FLAG_UNLOADOK, NULL);
1597