xref: /freebsd/sys/security/mac_stub/mac_stub.c (revision 24e8d0d07b12abb9868affee0bd337a69dc86fd1)
1d8a7b7a3SRobert Watson /*-
2d8a7b7a3SRobert Watson  * Copyright (c) 1999, 2000, 2001, 2002 Robert N. M. Watson
3d8a7b7a3SRobert Watson  * Copyright (c) 2001, 2002 Networks Associates Technology, Inc.
4d8a7b7a3SRobert Watson  * All rights reserved.
5d8a7b7a3SRobert Watson  *
6d8a7b7a3SRobert Watson  * This software was developed by Robert Watson for the TrustedBSD Project.
7d8a7b7a3SRobert Watson  *
8d8a7b7a3SRobert Watson  * This software was developed for the FreeBSD Project in part by NAI Labs,
9d8a7b7a3SRobert Watson  * the Security Research Division of Network Associates, Inc. under
10d8a7b7a3SRobert Watson  * DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA
11d8a7b7a3SRobert Watson  * CHATS research program.
12d8a7b7a3SRobert Watson  *
13d8a7b7a3SRobert Watson  * Redistribution and use in source and binary forms, with or without
14d8a7b7a3SRobert Watson  * modification, are permitted provided that the following conditions
15d8a7b7a3SRobert Watson  * are met:
16d8a7b7a3SRobert Watson  * 1. Redistributions of source code must retain the above copyright
17d8a7b7a3SRobert Watson  *    notice, this list of conditions and the following disclaimer.
18d8a7b7a3SRobert Watson  * 2. Redistributions in binary form must reproduce the above copyright
19d8a7b7a3SRobert Watson  *    notice, this list of conditions and the following disclaimer in the
20d8a7b7a3SRobert Watson  *    documentation and/or other materials provided with the distribution.
21d8a7b7a3SRobert Watson  * 3. The names of the authors may not be used to endorse or promote
22d8a7b7a3SRobert Watson  *    products derived from this software without specific prior written
23d8a7b7a3SRobert Watson  *    permission.
24d8a7b7a3SRobert Watson  *
25d8a7b7a3SRobert Watson  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
26d8a7b7a3SRobert Watson  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27d8a7b7a3SRobert Watson  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28d8a7b7a3SRobert Watson  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
29d8a7b7a3SRobert Watson  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30d8a7b7a3SRobert Watson  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
31d8a7b7a3SRobert Watson  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32d8a7b7a3SRobert Watson  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33d8a7b7a3SRobert Watson  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34d8a7b7a3SRobert Watson  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35d8a7b7a3SRobert Watson  * SUCH DAMAGE.
36d8a7b7a3SRobert Watson  *
37d8a7b7a3SRobert Watson  * $FreeBSD$
38d8a7b7a3SRobert Watson  */
39d8a7b7a3SRobert Watson 
40d8a7b7a3SRobert Watson /*
41d8a7b7a3SRobert Watson  * Developed by the TrustedBSD Project.
42d8a7b7a3SRobert Watson  * Generic mandatory access module that does nothing.
43d8a7b7a3SRobert Watson  */
44d8a7b7a3SRobert Watson 
45d8a7b7a3SRobert Watson #include <sys/types.h>
46d8a7b7a3SRobert Watson #include <sys/param.h>
47d8a7b7a3SRobert Watson #include <sys/acl.h>
48d8a7b7a3SRobert Watson #include <sys/conf.h>
49d8a7b7a3SRobert Watson #include <sys/kernel.h>
50d8a7b7a3SRobert Watson #include <sys/mac.h>
51d8a7b7a3SRobert Watson #include <sys/mount.h>
52d8a7b7a3SRobert Watson #include <sys/proc.h>
53d8a7b7a3SRobert Watson #include <sys/systm.h>
54d8a7b7a3SRobert Watson #include <sys/sysproto.h>
55d8a7b7a3SRobert Watson #include <sys/sysent.h>
56d8a7b7a3SRobert Watson #include <sys/vnode.h>
57d8a7b7a3SRobert Watson #include <sys/file.h>
58d8a7b7a3SRobert Watson #include <sys/socket.h>
59d8a7b7a3SRobert Watson #include <sys/socketvar.h>
60d8a7b7a3SRobert Watson #include <sys/pipe.h>
61d8a7b7a3SRobert Watson #include <sys/sysctl.h>
62d8a7b7a3SRobert Watson 
63d8a7b7a3SRobert Watson #include <fs/devfs/devfs.h>
64d8a7b7a3SRobert Watson 
65d8a7b7a3SRobert Watson #include <net/bpfdesc.h>
66d8a7b7a3SRobert Watson #include <net/if.h>
67d8a7b7a3SRobert Watson #include <net/if_types.h>
68d8a7b7a3SRobert Watson #include <net/if_var.h>
69d8a7b7a3SRobert Watson 
70d8a7b7a3SRobert Watson #include <netinet/in.h>
71d8a7b7a3SRobert Watson #include <netinet/ip_var.h>
72d8a7b7a3SRobert Watson 
73d8a7b7a3SRobert Watson #include <vm/vm.h>
74d8a7b7a3SRobert Watson 
75d8a7b7a3SRobert Watson #include <sys/mac_policy.h>
76d8a7b7a3SRobert Watson 
77d8a7b7a3SRobert Watson SYSCTL_DECL(_security_mac);
78d8a7b7a3SRobert Watson 
79d8a7b7a3SRobert Watson SYSCTL_NODE(_security_mac, OID_AUTO, none, CTLFLAG_RW, 0,
80d8a7b7a3SRobert Watson     "TrustedBSD mac_none policy controls");
81d8a7b7a3SRobert Watson 
82d8a7b7a3SRobert Watson static int	mac_none_enabled = 0;
83d8a7b7a3SRobert Watson SYSCTL_INT(_security_mac_none, OID_AUTO, enabled, CTLFLAG_RW,
84d8a7b7a3SRobert Watson     &mac_none_enabled, 0, "Enforce none policy");
85d8a7b7a3SRobert Watson 
86d8a7b7a3SRobert Watson /*
87d8a7b7a3SRobert Watson  * Policy module operations.
88d8a7b7a3SRobert Watson  */
89d8a7b7a3SRobert Watson static void
90d8a7b7a3SRobert Watson mac_none_destroy(struct mac_policy_conf *conf)
91d8a7b7a3SRobert Watson {
92d8a7b7a3SRobert Watson 
93d8a7b7a3SRobert Watson }
94d8a7b7a3SRobert Watson 
95d8a7b7a3SRobert Watson static void
96d8a7b7a3SRobert Watson mac_none_init(struct mac_policy_conf *conf)
97d8a7b7a3SRobert Watson {
98d8a7b7a3SRobert Watson 
99d8a7b7a3SRobert Watson }
100d8a7b7a3SRobert Watson 
1018a97ecf6SRobert Watson static int
1028a97ecf6SRobert Watson mac_none_syscall(struct thread *td, int call, void *arg)
1038a97ecf6SRobert Watson {
1048a97ecf6SRobert Watson 
1058a97ecf6SRobert Watson 	return (0);
1068a97ecf6SRobert Watson }
1078a97ecf6SRobert Watson 
108d8a7b7a3SRobert Watson /*
109d8a7b7a3SRobert Watson  * Label operations.
110d8a7b7a3SRobert Watson  */
111d8a7b7a3SRobert Watson static void
11296adb909SRobert Watson mac_none_init_label(struct label *label)
113d8a7b7a3SRobert Watson {
114d8a7b7a3SRobert Watson 
115d8a7b7a3SRobert Watson }
116d8a7b7a3SRobert Watson 
117d8a7b7a3SRobert Watson static int
11896adb909SRobert Watson mac_none_init_label_waitcheck(struct label *label, int flag)
119d8a7b7a3SRobert Watson {
120d8a7b7a3SRobert Watson 
121d8a7b7a3SRobert Watson 	return (0);
122d8a7b7a3SRobert Watson }
123d8a7b7a3SRobert Watson 
124d8a7b7a3SRobert Watson static void
12596adb909SRobert Watson mac_none_destroy_label(struct label *label)
126d8a7b7a3SRobert Watson {
127d8a7b7a3SRobert Watson 
128d8a7b7a3SRobert Watson }
129d8a7b7a3SRobert Watson 
130d8a7b7a3SRobert Watson static int
13124e8d0d0SRobert Watson mac_none_externalize_label(struct label *label, char *element_name,
13224e8d0d0SRobert Watson     char *element_data, size_t size, size_t *len, int *claimed)
133d8a7b7a3SRobert Watson {
134d8a7b7a3SRobert Watson 
135d8a7b7a3SRobert Watson 	return (0);
136d8a7b7a3SRobert Watson }
137d8a7b7a3SRobert Watson 
138d8a7b7a3SRobert Watson static int
13924e8d0d0SRobert Watson mac_none_externalize_vnode_oldmac(struct label *label, struct oldmac *extmac)
14024e8d0d0SRobert Watson {
14124e8d0d0SRobert Watson 
14224e8d0d0SRobert Watson 	return (0);
14324e8d0d0SRobert Watson }
14424e8d0d0SRobert Watson 
14524e8d0d0SRobert Watson static int
14624e8d0d0SRobert Watson mac_none_internalize_label(struct label *label, char *element_name,
14724e8d0d0SRobert Watson     char *element_data, int *claimed)
148d8a7b7a3SRobert Watson {
149d8a7b7a3SRobert Watson 
150d8a7b7a3SRobert Watson 	return (0);
151d8a7b7a3SRobert Watson }
152d8a7b7a3SRobert Watson 
153d8a7b7a3SRobert Watson /*
154d8a7b7a3SRobert Watson  * Labeling event operations: file system objects, and things that look
155d8a7b7a3SRobert Watson  * a lot like file system objects.
156d8a7b7a3SRobert Watson  */
157d8a7b7a3SRobert Watson static void
158d8a7b7a3SRobert Watson mac_none_create_devfs_device(dev_t dev, struct devfs_dirent *devfs_dirent,
159d8a7b7a3SRobert Watson     struct label *label)
160d8a7b7a3SRobert Watson {
161d8a7b7a3SRobert Watson 
162d8a7b7a3SRobert Watson }
163d8a7b7a3SRobert Watson 
164d8a7b7a3SRobert Watson static void
16557e2f493SRobert Watson mac_none_create_devfs_directory(char *dirname, int dirnamelen,
16657e2f493SRobert Watson     struct devfs_dirent *devfs_dirent, struct label *label)
167eea8ea31SRobert Watson {
168eea8ea31SRobert Watson 
169eea8ea31SRobert Watson }
170eea8ea31SRobert Watson 
171eea8ea31SRobert Watson static void
17257e2f493SRobert Watson mac_none_create_devfs_symlink(struct ucred *cred, struct devfs_dirent *dd,
17357e2f493SRobert Watson     struct label *ddlabel, struct devfs_dirent *de, struct label *delabel)
174d8a7b7a3SRobert Watson {
175d8a7b7a3SRobert Watson 
176d8a7b7a3SRobert Watson }
177d8a7b7a3SRobert Watson 
178d8a7b7a3SRobert Watson static void
179d8a7b7a3SRobert Watson mac_none_create_devfs_vnode(struct devfs_dirent *devfs_dirent,
180d8a7b7a3SRobert Watson     struct label *direntlabel, struct vnode *vp, struct label *vnodelabel)
181d8a7b7a3SRobert Watson {
182d8a7b7a3SRobert Watson 
183d8a7b7a3SRobert Watson }
184d8a7b7a3SRobert Watson 
185d8a7b7a3SRobert Watson static void
186d8a7b7a3SRobert Watson mac_none_create_vnode(struct ucred *cred, struct vnode *parent,
187d8a7b7a3SRobert Watson     struct label *parentlabel, struct vnode *child,
188d8a7b7a3SRobert Watson     struct label *childlabel)
189d8a7b7a3SRobert Watson {
190d8a7b7a3SRobert Watson 
191d8a7b7a3SRobert Watson }
192d8a7b7a3SRobert Watson 
193d8a7b7a3SRobert Watson static void
194d8a7b7a3SRobert Watson mac_none_create_mount(struct ucred *cred, struct mount *mp,
195d8a7b7a3SRobert Watson     struct label *mntlabel, struct label *fslabel)
196d8a7b7a3SRobert Watson {
197d8a7b7a3SRobert Watson 
198d8a7b7a3SRobert Watson }
199d8a7b7a3SRobert Watson 
200d8a7b7a3SRobert Watson static void
201d8a7b7a3SRobert Watson mac_none_create_root_mount(struct ucred *cred, struct mount *mp,
202d8a7b7a3SRobert Watson     struct label *mntlabel, struct label *fslabel)
203d8a7b7a3SRobert Watson {
204d8a7b7a3SRobert Watson 
205d8a7b7a3SRobert Watson }
206d8a7b7a3SRobert Watson 
207d8a7b7a3SRobert Watson static void
208d8a7b7a3SRobert Watson mac_none_relabel_vnode(struct ucred *cred, struct vnode *vp,
209d8a7b7a3SRobert Watson     struct label *vnodelabel, struct label *label)
210d8a7b7a3SRobert Watson {
211d8a7b7a3SRobert Watson 
212d8a7b7a3SRobert Watson }
213d8a7b7a3SRobert Watson 
214d8a7b7a3SRobert Watson static void
215d8a7b7a3SRobert Watson mac_none_update_devfsdirent(struct devfs_dirent *devfs_dirent,
216d8a7b7a3SRobert Watson     struct label *direntlabel, struct vnode *vp, struct label *vnodelabel)
217d8a7b7a3SRobert Watson {
218d8a7b7a3SRobert Watson 
219d8a7b7a3SRobert Watson }
220d8a7b7a3SRobert Watson 
221d8a7b7a3SRobert Watson static void
222d8a7b7a3SRobert Watson mac_none_update_procfsvnode(struct vnode *vp, struct label *vnodelabel,
223d8a7b7a3SRobert Watson     struct ucred *cred)
224d8a7b7a3SRobert Watson {
225d8a7b7a3SRobert Watson 
226d8a7b7a3SRobert Watson }
227d8a7b7a3SRobert Watson 
228d8a7b7a3SRobert Watson static int
229d8a7b7a3SRobert Watson mac_none_update_vnode_from_externalized(struct vnode *vp,
23024e8d0d0SRobert Watson     struct label *vnodelabel, struct oldmac *extmac)
231d8a7b7a3SRobert Watson {
232d8a7b7a3SRobert Watson 
233d8a7b7a3SRobert Watson 	return (0);
234d8a7b7a3SRobert Watson }
235d8a7b7a3SRobert Watson 
236d8a7b7a3SRobert Watson static void
237d8a7b7a3SRobert Watson mac_none_update_vnode_from_mount(struct vnode *vp, struct label *vnodelabel,
238d8a7b7a3SRobert Watson     struct mount *mp, struct label *fslabel)
239d8a7b7a3SRobert Watson {
240d8a7b7a3SRobert Watson 
241d8a7b7a3SRobert Watson }
242d8a7b7a3SRobert Watson 
243d8a7b7a3SRobert Watson /*
244d8a7b7a3SRobert Watson  * Labeling event operations: IPC object.
245d8a7b7a3SRobert Watson  */
246d8a7b7a3SRobert Watson static void
247d8a7b7a3SRobert Watson mac_none_create_mbuf_from_socket(struct socket *so, struct label *socketlabel,
248d8a7b7a3SRobert Watson     struct mbuf *m, struct label *mbuflabel)
249d8a7b7a3SRobert Watson {
250d8a7b7a3SRobert Watson 
251d8a7b7a3SRobert Watson }
252d8a7b7a3SRobert Watson 
253d8a7b7a3SRobert Watson static void
254d8a7b7a3SRobert Watson mac_none_create_socket(struct ucred *cred, struct socket *socket,
255d8a7b7a3SRobert Watson     struct label *socketlabel)
256d8a7b7a3SRobert Watson {
257d8a7b7a3SRobert Watson 
258d8a7b7a3SRobert Watson }
259d8a7b7a3SRobert Watson 
260d8a7b7a3SRobert Watson static void
261d8a7b7a3SRobert Watson mac_none_create_pipe(struct ucred *cred, struct pipe *pipe,
262d8a7b7a3SRobert Watson     struct label *pipelabel)
263d8a7b7a3SRobert Watson {
264d8a7b7a3SRobert Watson 
265d8a7b7a3SRobert Watson }
266d8a7b7a3SRobert Watson 
267d8a7b7a3SRobert Watson static void
268d8a7b7a3SRobert Watson mac_none_create_socket_from_socket(struct socket *oldsocket,
269d8a7b7a3SRobert Watson     struct label *oldsocketlabel, struct socket *newsocket,
270d8a7b7a3SRobert Watson     struct label *newsocketlabel)
271d8a7b7a3SRobert Watson {
272d8a7b7a3SRobert Watson 
273d8a7b7a3SRobert Watson }
274d8a7b7a3SRobert Watson 
275d8a7b7a3SRobert Watson static void
276d8a7b7a3SRobert Watson mac_none_relabel_socket(struct ucred *cred, struct socket *socket,
277d8a7b7a3SRobert Watson     struct label *socketlabel, struct label *newlabel)
278d8a7b7a3SRobert Watson {
279d8a7b7a3SRobert Watson 
280d8a7b7a3SRobert Watson }
281d8a7b7a3SRobert Watson 
282d8a7b7a3SRobert Watson static void
283d8a7b7a3SRobert Watson mac_none_relabel_pipe(struct ucred *cred, struct pipe *pipe,
284d8a7b7a3SRobert Watson     struct label *pipelabel, struct label *newlabel)
285d8a7b7a3SRobert Watson {
286d8a7b7a3SRobert Watson 
287d8a7b7a3SRobert Watson }
288d8a7b7a3SRobert Watson 
289d8a7b7a3SRobert Watson static void
290d8a7b7a3SRobert Watson mac_none_set_socket_peer_from_mbuf(struct mbuf *mbuf, struct label *mbuflabel,
291d8a7b7a3SRobert Watson     struct socket *socket, struct label *socketpeerlabel)
292d8a7b7a3SRobert Watson {
293d8a7b7a3SRobert Watson 
294d8a7b7a3SRobert Watson }
295d8a7b7a3SRobert Watson 
296d8a7b7a3SRobert Watson static void
297d8a7b7a3SRobert Watson mac_none_set_socket_peer_from_socket(struct socket *oldsocket,
298d8a7b7a3SRobert Watson     struct label *oldsocketlabel, struct socket *newsocket,
299d8a7b7a3SRobert Watson     struct label *newsocketpeerlabel)
300d8a7b7a3SRobert Watson {
301d8a7b7a3SRobert Watson 
302d8a7b7a3SRobert Watson }
303d8a7b7a3SRobert Watson 
304d8a7b7a3SRobert Watson /*
305d8a7b7a3SRobert Watson  * Labeling event operations: network objects.
306d8a7b7a3SRobert Watson  */
307d8a7b7a3SRobert Watson static void
308d8a7b7a3SRobert Watson mac_none_create_bpfdesc(struct ucred *cred, struct bpf_d *bpf_d,
309d8a7b7a3SRobert Watson     struct label *bpflabel)
310d8a7b7a3SRobert Watson {
311d8a7b7a3SRobert Watson 
312d8a7b7a3SRobert Watson }
313d8a7b7a3SRobert Watson 
314d8a7b7a3SRobert Watson static void
315d8a7b7a3SRobert Watson mac_none_create_datagram_from_ipq(struct ipq *ipq, struct label *ipqlabel,
316d8a7b7a3SRobert Watson     struct mbuf *datagram, struct label *datagramlabel)
317d8a7b7a3SRobert Watson {
318d8a7b7a3SRobert Watson 
319d8a7b7a3SRobert Watson }
320d8a7b7a3SRobert Watson 
321d8a7b7a3SRobert Watson static void
322d8a7b7a3SRobert Watson mac_none_create_fragment(struct mbuf *datagram, struct label *datagramlabel,
323d8a7b7a3SRobert Watson     struct mbuf *fragment, struct label *fragmentlabel)
324d8a7b7a3SRobert Watson {
325d8a7b7a3SRobert Watson 
326d8a7b7a3SRobert Watson }
327d8a7b7a3SRobert Watson 
328d8a7b7a3SRobert Watson static void
329d8a7b7a3SRobert Watson mac_none_create_ifnet(struct ifnet *ifnet, struct label *ifnetlabel)
330d8a7b7a3SRobert Watson {
331d8a7b7a3SRobert Watson 
332d8a7b7a3SRobert Watson }
333d8a7b7a3SRobert Watson 
334d8a7b7a3SRobert Watson static void
335d8a7b7a3SRobert Watson mac_none_create_ipq(struct mbuf *fragment, struct label *fragmentlabel,
336d8a7b7a3SRobert Watson     struct ipq *ipq, struct label *ipqlabel)
337d8a7b7a3SRobert Watson {
338d8a7b7a3SRobert Watson 
339d8a7b7a3SRobert Watson }
340d8a7b7a3SRobert Watson 
341d8a7b7a3SRobert Watson static void
342d8a7b7a3SRobert Watson mac_none_create_mbuf_from_mbuf(struct mbuf *oldmbuf,
343d8a7b7a3SRobert Watson     struct label *oldmbuflabel, struct mbuf *newmbuf,
344d8a7b7a3SRobert Watson     struct label *newmbuflabel)
345d8a7b7a3SRobert Watson {
346d8a7b7a3SRobert Watson 
347d8a7b7a3SRobert Watson }
348d8a7b7a3SRobert Watson 
349d8a7b7a3SRobert Watson static void
350d8a7b7a3SRobert Watson mac_none_create_mbuf_linklayer(struct ifnet *ifnet, struct label *ifnetlabel,
351d8a7b7a3SRobert Watson     struct mbuf *mbuf, struct label *mbuflabel)
352d8a7b7a3SRobert Watson {
353d8a7b7a3SRobert Watson 
354d8a7b7a3SRobert Watson }
355d8a7b7a3SRobert Watson 
356d8a7b7a3SRobert Watson static void
357d8a7b7a3SRobert Watson mac_none_create_mbuf_from_bpfdesc(struct bpf_d *bpf_d, struct label *bpflabel,
358d8a7b7a3SRobert Watson     struct mbuf *mbuf, struct label *mbuflabel)
359d8a7b7a3SRobert Watson {
360d8a7b7a3SRobert Watson 
361d8a7b7a3SRobert Watson }
362d8a7b7a3SRobert Watson 
363d8a7b7a3SRobert Watson static void
364d8a7b7a3SRobert Watson mac_none_create_mbuf_from_ifnet(struct ifnet *ifnet, struct label *ifnetlabel,
365d8a7b7a3SRobert Watson     struct mbuf *m, struct label *mbuflabel)
366d8a7b7a3SRobert Watson {
367d8a7b7a3SRobert Watson 
368d8a7b7a3SRobert Watson }
369d8a7b7a3SRobert Watson 
370d8a7b7a3SRobert Watson static void
371d8a7b7a3SRobert Watson mac_none_create_mbuf_multicast_encap(struct mbuf *oldmbuf,
372d8a7b7a3SRobert Watson     struct label *oldmbuflabel, struct ifnet *ifnet, struct label *ifnetlabel,
373d8a7b7a3SRobert Watson     struct mbuf *newmbuf, struct label *newmbuflabel)
374d8a7b7a3SRobert Watson {
375d8a7b7a3SRobert Watson 
376d8a7b7a3SRobert Watson }
377d8a7b7a3SRobert Watson 
378d8a7b7a3SRobert Watson static void
379d8a7b7a3SRobert Watson mac_none_create_mbuf_netlayer(struct mbuf *oldmbuf,
380d8a7b7a3SRobert Watson     struct label *oldmbuflabel, struct mbuf *newmbuf, struct label *newmbuflabel)
381d8a7b7a3SRobert Watson {
382d8a7b7a3SRobert Watson 
383d8a7b7a3SRobert Watson }
384d8a7b7a3SRobert Watson 
385d8a7b7a3SRobert Watson static int
386d8a7b7a3SRobert Watson mac_none_fragment_match(struct mbuf *fragment, struct label *fragmentlabel,
387d8a7b7a3SRobert Watson     struct ipq *ipq, struct label *ipqlabel)
388d8a7b7a3SRobert Watson {
389d8a7b7a3SRobert Watson 
390d8a7b7a3SRobert Watson 	return (1);
391d8a7b7a3SRobert Watson }
392d8a7b7a3SRobert Watson 
393d8a7b7a3SRobert Watson static void
394d8a7b7a3SRobert Watson mac_none_relabel_ifnet(struct ucred *cred, struct ifnet *ifnet,
395d8a7b7a3SRobert Watson     struct label *ifnetlabel, struct label *newlabel)
396d8a7b7a3SRobert Watson {
397d8a7b7a3SRobert Watson 
398d8a7b7a3SRobert Watson }
399d8a7b7a3SRobert Watson 
400d8a7b7a3SRobert Watson static void
401d8a7b7a3SRobert Watson mac_none_update_ipq(struct mbuf *fragment, struct label *fragmentlabel,
402d8a7b7a3SRobert Watson     struct ipq *ipq, struct label *ipqlabel)
403d8a7b7a3SRobert Watson {
404d8a7b7a3SRobert Watson 
405d8a7b7a3SRobert Watson }
406d8a7b7a3SRobert Watson 
407d8a7b7a3SRobert Watson /*
408d8a7b7a3SRobert Watson  * Labeling event operations: processes.
409d8a7b7a3SRobert Watson  */
410d8a7b7a3SRobert Watson static void
411d8a7b7a3SRobert Watson mac_none_create_cred(struct ucred *cred_parent, struct ucred *cred_child)
412d8a7b7a3SRobert Watson {
413d8a7b7a3SRobert Watson 
414d8a7b7a3SRobert Watson }
415d8a7b7a3SRobert Watson 
416d8a7b7a3SRobert Watson static void
417d8a7b7a3SRobert Watson mac_none_execve_transition(struct ucred *old, struct ucred *new,
418d8a7b7a3SRobert Watson     struct vnode *vp, struct label *vnodelabel)
419d8a7b7a3SRobert Watson {
420d8a7b7a3SRobert Watson 
421d8a7b7a3SRobert Watson }
422d8a7b7a3SRobert Watson 
423d8a7b7a3SRobert Watson static int
424d8a7b7a3SRobert Watson mac_none_execve_will_transition(struct ucred *old, struct vnode *vp,
425d8a7b7a3SRobert Watson     struct label *vnodelabel)
426d8a7b7a3SRobert Watson {
427d8a7b7a3SRobert Watson 
428d8a7b7a3SRobert Watson 	return (0);
429d8a7b7a3SRobert Watson }
430d8a7b7a3SRobert Watson 
431d8a7b7a3SRobert Watson static void
432d8a7b7a3SRobert Watson mac_none_create_proc0(struct ucred *cred)
433d8a7b7a3SRobert Watson {
434d8a7b7a3SRobert Watson 
435d8a7b7a3SRobert Watson }
436d8a7b7a3SRobert Watson 
437d8a7b7a3SRobert Watson static void
438d8a7b7a3SRobert Watson mac_none_create_proc1(struct ucred *cred)
439d8a7b7a3SRobert Watson {
440d8a7b7a3SRobert Watson 
441d8a7b7a3SRobert Watson }
442d8a7b7a3SRobert Watson 
443d8a7b7a3SRobert Watson static void
444d8a7b7a3SRobert Watson mac_none_relabel_cred(struct ucred *cred, struct label *newlabel)
445d8a7b7a3SRobert Watson {
446d8a7b7a3SRobert Watson 
447d8a7b7a3SRobert Watson }
448d8a7b7a3SRobert Watson 
449d8a7b7a3SRobert Watson /*
450d8a7b7a3SRobert Watson  * Access control checks.
451d8a7b7a3SRobert Watson  */
452d8a7b7a3SRobert Watson static int
453d8a7b7a3SRobert Watson mac_none_check_bpfdesc_receive(struct bpf_d *bpf_d, struct label *bpflabel,
454d8a7b7a3SRobert Watson     struct ifnet *ifnet, struct label *ifnet_label)
455d8a7b7a3SRobert Watson {
456d8a7b7a3SRobert Watson 
457d8a7b7a3SRobert Watson         return (0);
458d8a7b7a3SRobert Watson }
459d8a7b7a3SRobert Watson 
460d8a7b7a3SRobert Watson static int
461d8a7b7a3SRobert Watson mac_none_check_cred_relabel(struct ucred *cred, struct label *newlabel)
462d8a7b7a3SRobert Watson {
463d8a7b7a3SRobert Watson 
464d8a7b7a3SRobert Watson 	return (0);
465d8a7b7a3SRobert Watson }
466d8a7b7a3SRobert Watson 
467d8a7b7a3SRobert Watson static int
468d8a7b7a3SRobert Watson mac_none_check_cred_visible(struct ucred *u1, struct ucred *u2)
469d8a7b7a3SRobert Watson {
470d8a7b7a3SRobert Watson 
471d8a7b7a3SRobert Watson 	return (0);
472d8a7b7a3SRobert Watson }
473d8a7b7a3SRobert Watson 
474d8a7b7a3SRobert Watson static int
475d8a7b7a3SRobert Watson mac_none_check_ifnet_relabel(struct ucred *cred, struct ifnet *ifnet,
476d8a7b7a3SRobert Watson     struct label *newlabel)
477d8a7b7a3SRobert Watson {
478d8a7b7a3SRobert Watson 
479d8a7b7a3SRobert Watson 	return (0);
480d8a7b7a3SRobert Watson }
481d8a7b7a3SRobert Watson 
482d8a7b7a3SRobert Watson static int
483d8a7b7a3SRobert Watson mac_none_check_ifnet_transmit(struct ifnet *ifnet, struct label *ifnetlabel,
484d8a7b7a3SRobert Watson     struct mbuf *m, struct label *mbuflabel)
485d8a7b7a3SRobert Watson {
486d8a7b7a3SRobert Watson 
487d8a7b7a3SRobert Watson 	return (0);
488d8a7b7a3SRobert Watson }
489d8a7b7a3SRobert Watson 
490d8a7b7a3SRobert Watson static int
491d8a7b7a3SRobert Watson mac_none_check_mount_stat(struct ucred *cred, struct mount *mp,
492d8a7b7a3SRobert Watson     struct label *mntlabel)
493d8a7b7a3SRobert Watson {
494d8a7b7a3SRobert Watson 
495d8a7b7a3SRobert Watson 	return (0);
496d8a7b7a3SRobert Watson }
497d8a7b7a3SRobert Watson 
498d8a7b7a3SRobert Watson static int
499d8a7b7a3SRobert Watson mac_none_check_pipe_ioctl(struct ucred *cred, struct pipe *pipe,
500d8a7b7a3SRobert Watson     struct label *pipelabel, unsigned long cmd, void /* caddr_t */ *data)
501d8a7b7a3SRobert Watson {
502d8a7b7a3SRobert Watson 
503d8a7b7a3SRobert Watson 	return (0);
504d8a7b7a3SRobert Watson }
505d8a7b7a3SRobert Watson 
506d8a7b7a3SRobert Watson static int
507c024c3eeSRobert Watson mac_none_check_pipe_poll(struct ucred *cred, struct pipe *pipe,
508c024c3eeSRobert Watson     struct label *pipelabel)
509c024c3eeSRobert Watson {
510c024c3eeSRobert Watson 
511c024c3eeSRobert Watson 	return (0);
512c024c3eeSRobert Watson }
513c024c3eeSRobert Watson 
514c024c3eeSRobert Watson static int
515c024c3eeSRobert Watson mac_none_check_pipe_read(struct ucred *cred, struct pipe *pipe,
516c024c3eeSRobert Watson     struct label *pipelabel)
517d8a7b7a3SRobert Watson {
518d8a7b7a3SRobert Watson 
519d8a7b7a3SRobert Watson 	return (0);
520d8a7b7a3SRobert Watson }
521d8a7b7a3SRobert Watson 
522d8a7b7a3SRobert Watson static int
523d8a7b7a3SRobert Watson mac_none_check_pipe_relabel(struct ucred *cred, struct pipe *pipe,
524d8a7b7a3SRobert Watson     struct label *pipelabel, struct label *newlabel)
525d8a7b7a3SRobert Watson {
526d8a7b7a3SRobert Watson 
527d8a7b7a3SRobert Watson 	return (0);
528d8a7b7a3SRobert Watson }
529d8a7b7a3SRobert Watson 
530d8a7b7a3SRobert Watson static int
531c024c3eeSRobert Watson mac_none_check_pipe_stat(struct ucred *cred, struct pipe *pipe,
532c024c3eeSRobert Watson     struct label *pipelabel)
533c024c3eeSRobert Watson {
534c024c3eeSRobert Watson 
535c024c3eeSRobert Watson 	return (0);
536c024c3eeSRobert Watson }
537c024c3eeSRobert Watson 
538c024c3eeSRobert Watson static int
539c024c3eeSRobert Watson mac_none_check_pipe_write(struct ucred *cred, struct pipe *pipe,
540c024c3eeSRobert Watson     struct label *pipelabel)
541c024c3eeSRobert Watson {
542c024c3eeSRobert Watson 
543c024c3eeSRobert Watson 	return (0);
544c024c3eeSRobert Watson }
545c024c3eeSRobert Watson 
546c024c3eeSRobert Watson static int
547d8a7b7a3SRobert Watson mac_none_check_proc_debug(struct ucred *cred, struct proc *proc)
548d8a7b7a3SRobert Watson {
549d8a7b7a3SRobert Watson 
550d8a7b7a3SRobert Watson 	return (0);
551d8a7b7a3SRobert Watson }
552d8a7b7a3SRobert Watson 
553d8a7b7a3SRobert Watson static int
554d8a7b7a3SRobert Watson mac_none_check_proc_sched(struct ucred *cred, struct proc *proc)
555d8a7b7a3SRobert Watson {
556d8a7b7a3SRobert Watson 
557d8a7b7a3SRobert Watson 	return (0);
558d8a7b7a3SRobert Watson }
559d8a7b7a3SRobert Watson 
560d8a7b7a3SRobert Watson static int
561d8a7b7a3SRobert Watson mac_none_check_proc_signal(struct ucred *cred, struct proc *proc, int signum)
562d8a7b7a3SRobert Watson {
563d8a7b7a3SRobert Watson 
564d8a7b7a3SRobert Watson 	return (0);
565d8a7b7a3SRobert Watson }
566d8a7b7a3SRobert Watson 
567d8a7b7a3SRobert Watson static int
568d8a7b7a3SRobert Watson mac_none_check_socket_bind(struct ucred *cred, struct socket *socket,
569d8a7b7a3SRobert Watson     struct label *socketlabel, struct sockaddr *sockaddr)
570d8a7b7a3SRobert Watson {
571d8a7b7a3SRobert Watson 
572d8a7b7a3SRobert Watson 	return (0);
573d8a7b7a3SRobert Watson }
574d8a7b7a3SRobert Watson 
575d8a7b7a3SRobert Watson static int
576d8a7b7a3SRobert Watson mac_none_check_socket_connect(struct ucred *cred, struct socket *socket,
577d8a7b7a3SRobert Watson     struct label *socketlabel, struct sockaddr *sockaddr)
578d8a7b7a3SRobert Watson {
579d8a7b7a3SRobert Watson 
580d8a7b7a3SRobert Watson 	return (0);
581d8a7b7a3SRobert Watson }
582d8a7b7a3SRobert Watson 
583d8a7b7a3SRobert Watson static int
584fb95b5d3SRobert Watson mac_none_check_socket_deliver(struct socket *so, struct label *socketlabel,
585fb95b5d3SRobert Watson     struct mbuf *m, struct label *mbuflabel)
586d8a7b7a3SRobert Watson {
587d8a7b7a3SRobert Watson 
588d8a7b7a3SRobert Watson 	return (0);
589d8a7b7a3SRobert Watson }
590d8a7b7a3SRobert Watson 
591d8a7b7a3SRobert Watson static int
59257e2f493SRobert Watson mac_none_check_socket_listen(struct ucred *cred, struct socket *so,
593fb95b5d3SRobert Watson     struct label *socketlabel)
594d8a7b7a3SRobert Watson {
595d8a7b7a3SRobert Watson 
596d8a7b7a3SRobert Watson 	return (0);
597d8a7b7a3SRobert Watson }
598d8a7b7a3SRobert Watson 
599d8a7b7a3SRobert Watson static int
600d8a7b7a3SRobert Watson mac_none_check_socket_relabel(struct ucred *cred, struct socket *socket,
601d8a7b7a3SRobert Watson     struct label *socketlabel, struct label *newlabel)
602d8a7b7a3SRobert Watson {
603d8a7b7a3SRobert Watson 
604d8a7b7a3SRobert Watson 	return (0);
605d8a7b7a3SRobert Watson }
606d8a7b7a3SRobert Watson 
607d8a7b7a3SRobert Watson static int
608d8a7b7a3SRobert Watson mac_none_check_socket_visible(struct ucred *cred, struct socket *socket,
609d8a7b7a3SRobert Watson    struct label *socketlabel)
610d8a7b7a3SRobert Watson {
611d8a7b7a3SRobert Watson 
612d8a7b7a3SRobert Watson 	return (0);
613d8a7b7a3SRobert Watson }
614d8a7b7a3SRobert Watson 
615d8a7b7a3SRobert Watson static int
616d8a7b7a3SRobert Watson mac_none_check_vnode_access(struct ucred *cred, struct vnode *vp,
617d8a7b7a3SRobert Watson     struct label *label, mode_t flags)
618d8a7b7a3SRobert Watson {
619d8a7b7a3SRobert Watson 
620d8a7b7a3SRobert Watson 	return (0);
621d8a7b7a3SRobert Watson }
622d8a7b7a3SRobert Watson 
623d8a7b7a3SRobert Watson static int
624d8a7b7a3SRobert Watson mac_none_check_vnode_chdir(struct ucred *cred, struct vnode *dvp,
625d8a7b7a3SRobert Watson     struct label *dlabel)
626d8a7b7a3SRobert Watson {
627d8a7b7a3SRobert Watson 
628d8a7b7a3SRobert Watson 	return (0);
629d8a7b7a3SRobert Watson }
630d8a7b7a3SRobert Watson 
631d8a7b7a3SRobert Watson static int
632d8a7b7a3SRobert Watson mac_none_check_vnode_chroot(struct ucred *cred, struct vnode *dvp,
633d8a7b7a3SRobert Watson     struct label *dlabel)
634d8a7b7a3SRobert Watson {
635d8a7b7a3SRobert Watson 
636d8a7b7a3SRobert Watson 	return (0);
637d8a7b7a3SRobert Watson }
638d8a7b7a3SRobert Watson 
639d8a7b7a3SRobert Watson static int
640d8a7b7a3SRobert Watson mac_none_check_vnode_create(struct ucred *cred, struct vnode *dvp,
641d8a7b7a3SRobert Watson     struct label *dlabel, struct componentname *cnp, struct vattr *vap)
642d8a7b7a3SRobert Watson {
643d8a7b7a3SRobert Watson 
644d8a7b7a3SRobert Watson 	return (0);
645d8a7b7a3SRobert Watson }
646d8a7b7a3SRobert Watson 
647d8a7b7a3SRobert Watson static int
648d8a7b7a3SRobert Watson mac_none_check_vnode_delete(struct ucred *cred, struct vnode *dvp,
649d8a7b7a3SRobert Watson     struct label *dlabel, struct vnode *vp, struct label *label,
650d8a7b7a3SRobert Watson     struct componentname *cnp)
651d8a7b7a3SRobert Watson {
652d8a7b7a3SRobert Watson 
653d8a7b7a3SRobert Watson 	return (0);
654d8a7b7a3SRobert Watson }
655d8a7b7a3SRobert Watson 
656d8a7b7a3SRobert Watson static int
657d8a7b7a3SRobert Watson mac_none_check_vnode_deleteacl(struct ucred *cred, struct vnode *vp,
658d8a7b7a3SRobert Watson     struct label *label, acl_type_t type)
659d8a7b7a3SRobert Watson {
660d8a7b7a3SRobert Watson 
661d8a7b7a3SRobert Watson 	return (0);
662d8a7b7a3SRobert Watson }
663d8a7b7a3SRobert Watson 
664d8a7b7a3SRobert Watson static int
665d8a7b7a3SRobert Watson mac_none_check_vnode_exec(struct ucred *cred, struct vnode *vp,
666d8a7b7a3SRobert Watson     struct label *label)
667d8a7b7a3SRobert Watson {
668d8a7b7a3SRobert Watson 
669d8a7b7a3SRobert Watson 	return (0);
670d8a7b7a3SRobert Watson }
671d8a7b7a3SRobert Watson 
672d8a7b7a3SRobert Watson static int
673d8a7b7a3SRobert Watson mac_none_check_vnode_getacl(struct ucred *cred, struct vnode *vp,
674d8a7b7a3SRobert Watson     struct label *label, acl_type_t type)
675d8a7b7a3SRobert Watson {
676d8a7b7a3SRobert Watson 
677d8a7b7a3SRobert Watson 	return (0);
678d8a7b7a3SRobert Watson }
679d8a7b7a3SRobert Watson 
680d8a7b7a3SRobert Watson static int
681d8a7b7a3SRobert Watson mac_none_check_vnode_getextattr(struct ucred *cred, struct vnode *vp,
682d8a7b7a3SRobert Watson     struct label *label, int attrnamespace, const char *name, struct uio *uio)
683d8a7b7a3SRobert Watson {
684d8a7b7a3SRobert Watson 
685d8a7b7a3SRobert Watson 	return (0);
686d8a7b7a3SRobert Watson }
687d8a7b7a3SRobert Watson 
688d8a7b7a3SRobert Watson static int
689c27b50f5SRobert Watson mac_none_check_vnode_link(struct ucred *cred, struct vnode *dvp,
690c27b50f5SRobert Watson     struct label *dlabel, struct vnode *vp, struct label *label,
691c27b50f5SRobert Watson     struct componentname *cnp)
692c27b50f5SRobert Watson {
693c27b50f5SRobert Watson 
694c27b50f5SRobert Watson 	return (0);
695c27b50f5SRobert Watson }
696c27b50f5SRobert Watson 
697c27b50f5SRobert Watson static int
698d8a7b7a3SRobert Watson mac_none_check_vnode_lookup(struct ucred *cred, struct vnode *dvp,
699d8a7b7a3SRobert Watson     struct label *dlabel, struct componentname *cnp)
700d8a7b7a3SRobert Watson {
701d8a7b7a3SRobert Watson 
702d8a7b7a3SRobert Watson 	return (0);
703d8a7b7a3SRobert Watson }
704d8a7b7a3SRobert Watson 
705d8a7b7a3SRobert Watson static int
706e183f80eSRobert Watson mac_none_check_vnode_mmap(struct ucred *cred, struct vnode *vp,
707e183f80eSRobert Watson     struct label *label, int prot)
708e183f80eSRobert Watson {
709e183f80eSRobert Watson 
710e183f80eSRobert Watson 	return (0);
711e183f80eSRobert Watson }
712e183f80eSRobert Watson 
713e183f80eSRobert Watson static int
714e183f80eSRobert Watson mac_none_check_vnode_mprotect(struct ucred *cred, struct vnode *vp,
715e183f80eSRobert Watson     struct label *label, int prot)
716e183f80eSRobert Watson {
717e183f80eSRobert Watson 
718e183f80eSRobert Watson 	return (0);
719e183f80eSRobert Watson }
720e183f80eSRobert Watson 
721e183f80eSRobert Watson static int
722d8a7b7a3SRobert Watson mac_none_check_vnode_open(struct ucred *cred, struct vnode *vp,
723d8a7b7a3SRobert Watson     struct label *filelabel, mode_t acc_mode)
724d8a7b7a3SRobert Watson {
725d8a7b7a3SRobert Watson 
726d8a7b7a3SRobert Watson 	return (0);
727d8a7b7a3SRobert Watson }
728d8a7b7a3SRobert Watson 
729d8a7b7a3SRobert Watson static int
730177142e4SRobert Watson mac_none_check_vnode_poll(struct ucred *active_cred, struct ucred *file_cred,
731177142e4SRobert Watson     struct vnode *vp, struct label *label)
7327f724f8bSRobert Watson {
7337f724f8bSRobert Watson 
7347f724f8bSRobert Watson 	return (0);
7357f724f8bSRobert Watson }
7367f724f8bSRobert Watson 
7377f724f8bSRobert Watson static int
738177142e4SRobert Watson mac_none_check_vnode_read(struct ucred *active_cred, struct ucred *file_cred,
739177142e4SRobert Watson     struct vnode *vp, struct label *label)
7407f724f8bSRobert Watson {
7417f724f8bSRobert Watson 
7427f724f8bSRobert Watson 	return (0);
7437f724f8bSRobert Watson }
7447f724f8bSRobert Watson 
7457f724f8bSRobert Watson static int
746d8a7b7a3SRobert Watson mac_none_check_vnode_readdir(struct ucred *cred, struct vnode *vp,
747d8a7b7a3SRobert Watson     struct label *dlabel)
748d8a7b7a3SRobert Watson {
749d8a7b7a3SRobert Watson 
750d8a7b7a3SRobert Watson 	return (0);
751d8a7b7a3SRobert Watson }
752d8a7b7a3SRobert Watson 
753d8a7b7a3SRobert Watson static int
754d8a7b7a3SRobert Watson mac_none_check_vnode_readlink(struct ucred *cred, struct vnode *vp,
755d8a7b7a3SRobert Watson     struct label *vnodelabel)
756d8a7b7a3SRobert Watson {
757d8a7b7a3SRobert Watson 
758d8a7b7a3SRobert Watson 	return (0);
759d8a7b7a3SRobert Watson }
760d8a7b7a3SRobert Watson 
761d8a7b7a3SRobert Watson static int
762d8a7b7a3SRobert Watson mac_none_check_vnode_relabel(struct ucred *cred, struct vnode *vp,
763d8a7b7a3SRobert Watson     struct label *vnodelabel, struct label *newlabel)
764d8a7b7a3SRobert Watson {
765d8a7b7a3SRobert Watson 
766d8a7b7a3SRobert Watson 	return (0);
767d8a7b7a3SRobert Watson }
768d8a7b7a3SRobert Watson 
769d8a7b7a3SRobert Watson static int
770d8a7b7a3SRobert Watson mac_none_check_vnode_rename_from(struct ucred *cred, struct vnode *dvp,
771d8a7b7a3SRobert Watson     struct label *dlabel, struct vnode *vp, struct label *label,
772d8a7b7a3SRobert Watson     struct componentname *cnp)
773d8a7b7a3SRobert Watson {
774d8a7b7a3SRobert Watson 
775d8a7b7a3SRobert Watson 	return (0);
776d8a7b7a3SRobert Watson }
777d8a7b7a3SRobert Watson 
778d8a7b7a3SRobert Watson static int
779d8a7b7a3SRobert Watson mac_none_check_vnode_rename_to(struct ucred *cred, struct vnode *dvp,
780d8a7b7a3SRobert Watson     struct label *dlabel, struct vnode *vp, struct label *label, int samedir,
781d8a7b7a3SRobert Watson     struct componentname *cnp)
782d8a7b7a3SRobert Watson {
783d8a7b7a3SRobert Watson 
784d8a7b7a3SRobert Watson 	return (0);
785d8a7b7a3SRobert Watson }
786d8a7b7a3SRobert Watson 
787d8a7b7a3SRobert Watson static int
788d8a7b7a3SRobert Watson mac_none_check_vnode_revoke(struct ucred *cred, struct vnode *vp,
789d8a7b7a3SRobert Watson     struct label *label)
790d8a7b7a3SRobert Watson {
791d8a7b7a3SRobert Watson 
792d8a7b7a3SRobert Watson 	return (0);
793d8a7b7a3SRobert Watson }
794d8a7b7a3SRobert Watson 
795d8a7b7a3SRobert Watson static int
796d8a7b7a3SRobert Watson mac_none_check_vnode_setacl(struct ucred *cred, struct vnode *vp,
797d8a7b7a3SRobert Watson     struct label *label, acl_type_t type, struct acl *acl)
798d8a7b7a3SRobert Watson {
799d8a7b7a3SRobert Watson 
800d8a7b7a3SRobert Watson 	return (0);
801d8a7b7a3SRobert Watson }
802d8a7b7a3SRobert Watson 
803d8a7b7a3SRobert Watson static int
804d8a7b7a3SRobert Watson mac_none_check_vnode_setextattr(struct ucred *cred, struct vnode *vp,
805d8a7b7a3SRobert Watson     struct label *label, int attrnamespace, const char *name, struct uio *uio)
806d8a7b7a3SRobert Watson {
807d8a7b7a3SRobert Watson 
808d8a7b7a3SRobert Watson 	return (0);
809d8a7b7a3SRobert Watson }
810d8a7b7a3SRobert Watson 
811d8a7b7a3SRobert Watson static int
812d8a7b7a3SRobert Watson mac_none_check_vnode_setflags(struct ucred *cred, struct vnode *vp,
813d8a7b7a3SRobert Watson     struct label *label, u_long flags)
814d8a7b7a3SRobert Watson {
815d8a7b7a3SRobert Watson 
816d8a7b7a3SRobert Watson 	return (0);
817d8a7b7a3SRobert Watson }
818d8a7b7a3SRobert Watson 
819d8a7b7a3SRobert Watson static int
820d8a7b7a3SRobert Watson mac_none_check_vnode_setmode(struct ucred *cred, struct vnode *vp,
821d8a7b7a3SRobert Watson     struct label *label, mode_t mode)
822d8a7b7a3SRobert Watson {
823d8a7b7a3SRobert Watson 
824d8a7b7a3SRobert Watson 	return (0);
825d8a7b7a3SRobert Watson }
826d8a7b7a3SRobert Watson 
827d8a7b7a3SRobert Watson static int
828d8a7b7a3SRobert Watson mac_none_check_vnode_setowner(struct ucred *cred, struct vnode *vp,
829d8a7b7a3SRobert Watson     struct label *label, uid_t uid, gid_t gid)
830d8a7b7a3SRobert Watson {
831d8a7b7a3SRobert Watson 
832d8a7b7a3SRobert Watson 	return (0);
833d8a7b7a3SRobert Watson }
834d8a7b7a3SRobert Watson 
835d8a7b7a3SRobert Watson static int
836d8a7b7a3SRobert Watson mac_none_check_vnode_setutimes(struct ucred *cred, struct vnode *vp,
837d8a7b7a3SRobert Watson     struct label *label, struct timespec atime, struct timespec mtime)
838d8a7b7a3SRobert Watson {
839d8a7b7a3SRobert Watson 
840d8a7b7a3SRobert Watson 	return (0);
841d8a7b7a3SRobert Watson }
842d8a7b7a3SRobert Watson 
843d8a7b7a3SRobert Watson static int
844177142e4SRobert Watson mac_none_check_vnode_stat(struct ucred *active_cred, struct ucred *file_cred,
845177142e4SRobert Watson     struct vnode *vp, struct label *label)
846d8a7b7a3SRobert Watson {
847d8a7b7a3SRobert Watson 
848d8a7b7a3SRobert Watson 	return (0);
849d8a7b7a3SRobert Watson }
850d8a7b7a3SRobert Watson 
8517f724f8bSRobert Watson static int
852177142e4SRobert Watson mac_none_check_vnode_write(struct ucred *active_cred,
853177142e4SRobert Watson     struct ucred *file_cred, struct vnode *vp, struct label *label)
8547f724f8bSRobert Watson {
8557f724f8bSRobert Watson 
8567f724f8bSRobert Watson 	return (0);
8577f724f8bSRobert Watson }
8587f724f8bSRobert Watson 
859d8a7b7a3SRobert Watson static struct mac_policy_op_entry mac_none_ops[] =
860d8a7b7a3SRobert Watson {
861d8a7b7a3SRobert Watson 	{ MAC_DESTROY,
862d8a7b7a3SRobert Watson 	    (macop_t)mac_none_destroy },
863d8a7b7a3SRobert Watson 	{ MAC_INIT,
864d8a7b7a3SRobert Watson 	    (macop_t)mac_none_init },
8658a97ecf6SRobert Watson 	{ MAC_SYSCALL,
8668a97ecf6SRobert Watson 	    (macop_t)mac_none_syscall },
86796adb909SRobert Watson 	{ MAC_INIT_BPFDESC_LABEL,
86896adb909SRobert Watson 	    (macop_t)mac_none_init_label },
86996adb909SRobert Watson 	{ MAC_INIT_CRED_LABEL,
87096adb909SRobert Watson 	    (macop_t)mac_none_init_label },
87196adb909SRobert Watson 	{ MAC_INIT_DEVFSDIRENT_LABEL,
87296adb909SRobert Watson 	    (macop_t)mac_none_init_label },
87396adb909SRobert Watson 	{ MAC_INIT_IFNET_LABEL,
87496adb909SRobert Watson 	    (macop_t)mac_none_init_label },
87596adb909SRobert Watson 	{ MAC_INIT_IPQ_LABEL,
87696adb909SRobert Watson 	    (macop_t)mac_none_init_label },
87796adb909SRobert Watson 	{ MAC_INIT_MBUF_LABEL,
87896adb909SRobert Watson 	    (macop_t)mac_none_init_label_waitcheck },
87996adb909SRobert Watson 	{ MAC_INIT_MOUNT_LABEL,
88096adb909SRobert Watson 	    (macop_t)mac_none_init_label },
88196adb909SRobert Watson 	{ MAC_INIT_MOUNT_FS_LABEL,
88296adb909SRobert Watson 	    (macop_t)mac_none_init_label },
88396adb909SRobert Watson 	{ MAC_INIT_PIPE_LABEL,
88496adb909SRobert Watson 	    (macop_t)mac_none_init_label },
88596adb909SRobert Watson 	{ MAC_INIT_SOCKET_LABEL,
88683985c26SRobert Watson 	    (macop_t)mac_none_init_label_waitcheck },
88796adb909SRobert Watson 	{ MAC_INIT_SOCKET_PEER_LABEL,
88883985c26SRobert Watson 	    (macop_t)mac_none_init_label_waitcheck },
88996adb909SRobert Watson 	{ MAC_INIT_VNODE_LABEL,
89096adb909SRobert Watson 	    (macop_t)mac_none_init_label },
89196adb909SRobert Watson 	{ MAC_DESTROY_BPFDESC_LABEL,
89296adb909SRobert Watson 	    (macop_t)mac_none_destroy_label },
89396adb909SRobert Watson 	{ MAC_DESTROY_CRED_LABEL,
89496adb909SRobert Watson 	    (macop_t)mac_none_destroy_label },
89596adb909SRobert Watson 	{ MAC_DESTROY_DEVFSDIRENT_LABEL,
89696adb909SRobert Watson 	    (macop_t)mac_none_destroy_label },
89796adb909SRobert Watson 	{ MAC_DESTROY_IFNET_LABEL,
89896adb909SRobert Watson 	    (macop_t)mac_none_destroy_label },
89996adb909SRobert Watson 	{ MAC_DESTROY_IPQ_LABEL,
90096adb909SRobert Watson 	    (macop_t)mac_none_destroy_label },
90196adb909SRobert Watson 	{ MAC_DESTROY_MBUF_LABEL,
90296adb909SRobert Watson 	    (macop_t)mac_none_destroy_label },
90396adb909SRobert Watson 	{ MAC_DESTROY_MOUNT_LABEL,
90496adb909SRobert Watson 	    (macop_t)mac_none_destroy_label },
90596adb909SRobert Watson 	{ MAC_DESTROY_MOUNT_FS_LABEL,
90696adb909SRobert Watson 	    (macop_t)mac_none_destroy_label },
90796adb909SRobert Watson 	{ MAC_DESTROY_PIPE_LABEL,
90896adb909SRobert Watson 	    (macop_t)mac_none_destroy_label },
90996adb909SRobert Watson 	{ MAC_DESTROY_SOCKET_LABEL,
91096adb909SRobert Watson 	    (macop_t)mac_none_destroy_label },
91196adb909SRobert Watson 	{ MAC_DESTROY_SOCKET_PEER_LABEL,
91296adb909SRobert Watson 	    (macop_t)mac_none_destroy_label },
91396adb909SRobert Watson 	{ MAC_DESTROY_VNODE_LABEL,
91496adb909SRobert Watson 	    (macop_t)mac_none_destroy_label },
91524e8d0d0SRobert Watson 	{ MAC_EXTERNALIZE_CRED_LABEL,
91624e8d0d0SRobert Watson 	    (macop_t)mac_none_externalize_label },
91724e8d0d0SRobert Watson 	{ MAC_EXTERNALIZE_IFNET_LABEL,
91824e8d0d0SRobert Watson 	    (macop_t)mac_none_externalize_label },
91924e8d0d0SRobert Watson 	{ MAC_EXTERNALIZE_PIPE_LABEL,
92024e8d0d0SRobert Watson 	    (macop_t)mac_none_externalize_label },
92124e8d0d0SRobert Watson 	{ MAC_EXTERNALIZE_SOCKET_LABEL,
92224e8d0d0SRobert Watson 	    (macop_t)mac_none_externalize_label },
92324e8d0d0SRobert Watson 	{ MAC_EXTERNALIZE_SOCKET_PEER_LABEL,
92424e8d0d0SRobert Watson 	    (macop_t)mac_none_externalize_label },
92524e8d0d0SRobert Watson 	{ MAC_EXTERNALIZE_VNODE_LABEL,
92624e8d0d0SRobert Watson 	    (macop_t)mac_none_externalize_label },
92724e8d0d0SRobert Watson 	{ MAC_EXTERNALIZE_VNODE_OLDMAC,
92824e8d0d0SRobert Watson 	    (macop_t)mac_none_externalize_vnode_oldmac },
92924e8d0d0SRobert Watson 	{ MAC_INTERNALIZE_CRED_LABEL,
93024e8d0d0SRobert Watson 	    (macop_t)mac_none_internalize_label },
93124e8d0d0SRobert Watson 	{ MAC_INTERNALIZE_IFNET_LABEL,
93224e8d0d0SRobert Watson 	    (macop_t)mac_none_internalize_label },
93324e8d0d0SRobert Watson 	{ MAC_INTERNALIZE_PIPE_LABEL,
93424e8d0d0SRobert Watson 	    (macop_t)mac_none_internalize_label },
93524e8d0d0SRobert Watson 	{ MAC_INTERNALIZE_SOCKET_LABEL,
93624e8d0d0SRobert Watson 	    (macop_t)mac_none_internalize_label },
93724e8d0d0SRobert Watson 	{ MAC_INTERNALIZE_VNODE_LABEL,
93824e8d0d0SRobert Watson 	    (macop_t)mac_none_internalize_label },
939d8a7b7a3SRobert Watson 	{ MAC_CREATE_DEVFS_DEVICE,
940d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_devfs_device },
941d8a7b7a3SRobert Watson 	{ MAC_CREATE_DEVFS_DIRECTORY,
942d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_devfs_directory },
943eea8ea31SRobert Watson 	{ MAC_CREATE_DEVFS_SYMLINK,
944eea8ea31SRobert Watson 	    (macop_t)mac_none_create_devfs_symlink },
945d8a7b7a3SRobert Watson 	{ MAC_CREATE_DEVFS_VNODE,
946d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_devfs_vnode },
947d8a7b7a3SRobert Watson 	{ MAC_CREATE_VNODE,
948d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_vnode },
949d8a7b7a3SRobert Watson 	{ MAC_CREATE_MOUNT,
950d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_mount },
951d8a7b7a3SRobert Watson 	{ MAC_CREATE_ROOT_MOUNT,
952d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_root_mount },
953d8a7b7a3SRobert Watson 	{ MAC_RELABEL_VNODE,
954d8a7b7a3SRobert Watson 	    (macop_t)mac_none_relabel_vnode },
955d8a7b7a3SRobert Watson 	{ MAC_UPDATE_DEVFSDIRENT,
956d8a7b7a3SRobert Watson 	    (macop_t)mac_none_update_devfsdirent },
957d8a7b7a3SRobert Watson 	{ MAC_UPDATE_PROCFSVNODE,
958d8a7b7a3SRobert Watson 	    (macop_t)mac_none_update_procfsvnode },
959d8a7b7a3SRobert Watson 	{ MAC_UPDATE_VNODE_FROM_EXTERNALIZED,
960d8a7b7a3SRobert Watson 	    (macop_t)mac_none_update_vnode_from_externalized },
961d8a7b7a3SRobert Watson 	{ MAC_UPDATE_VNODE_FROM_MOUNT,
962d8a7b7a3SRobert Watson 	    (macop_t)mac_none_update_vnode_from_mount },
963d8a7b7a3SRobert Watson 	{ MAC_CREATE_MBUF_FROM_SOCKET,
964d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_mbuf_from_socket },
965d8a7b7a3SRobert Watson 	{ MAC_CREATE_PIPE,
966d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_pipe },
967d8a7b7a3SRobert Watson 	{ MAC_CREATE_SOCKET,
968d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_socket },
969d8a7b7a3SRobert Watson 	{ MAC_CREATE_SOCKET_FROM_SOCKET,
970d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_socket_from_socket },
971d8a7b7a3SRobert Watson 	{ MAC_RELABEL_PIPE,
972d8a7b7a3SRobert Watson 	    (macop_t)mac_none_relabel_pipe },
973d8a7b7a3SRobert Watson 	{ MAC_RELABEL_SOCKET,
974d8a7b7a3SRobert Watson 	    (macop_t)mac_none_relabel_socket },
975d8a7b7a3SRobert Watson 	{ MAC_SET_SOCKET_PEER_FROM_MBUF,
976d8a7b7a3SRobert Watson 	    (macop_t)mac_none_set_socket_peer_from_mbuf },
977d8a7b7a3SRobert Watson 	{ MAC_SET_SOCKET_PEER_FROM_SOCKET,
978d8a7b7a3SRobert Watson 	    (macop_t)mac_none_set_socket_peer_from_socket },
979d8a7b7a3SRobert Watson 	{ MAC_CREATE_BPFDESC,
980d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_bpfdesc },
981d8a7b7a3SRobert Watson 	{ MAC_CREATE_IFNET,
982d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_ifnet },
983d8a7b7a3SRobert Watson 	{ MAC_CREATE_IPQ,
984d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_ipq },
985d8a7b7a3SRobert Watson 	{ MAC_CREATE_DATAGRAM_FROM_IPQ,
986d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_datagram_from_ipq },
987d8a7b7a3SRobert Watson 	{ MAC_CREATE_FRAGMENT,
988d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_fragment },
989d8a7b7a3SRobert Watson 	{ MAC_CREATE_IPQ,
990d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_ipq },
991d8a7b7a3SRobert Watson 	{ MAC_CREATE_MBUF_FROM_MBUF,
992d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_mbuf_from_mbuf },
993d8a7b7a3SRobert Watson 	{ MAC_CREATE_MBUF_LINKLAYER,
994d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_mbuf_linklayer },
995d8a7b7a3SRobert Watson 	{ MAC_CREATE_MBUF_FROM_BPFDESC,
996d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_mbuf_from_bpfdesc },
997d8a7b7a3SRobert Watson 	{ MAC_CREATE_MBUF_FROM_IFNET,
998d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_mbuf_from_ifnet },
999d8a7b7a3SRobert Watson 	{ MAC_CREATE_MBUF_MULTICAST_ENCAP,
1000d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_mbuf_multicast_encap },
1001d8a7b7a3SRobert Watson 	{ MAC_CREATE_MBUF_NETLAYER,
1002d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_mbuf_netlayer },
1003d8a7b7a3SRobert Watson 	{ MAC_FRAGMENT_MATCH,
1004d8a7b7a3SRobert Watson 	    (macop_t)mac_none_fragment_match },
1005d8a7b7a3SRobert Watson 	{ MAC_RELABEL_IFNET,
1006d8a7b7a3SRobert Watson 	    (macop_t)mac_none_relabel_ifnet },
1007d8a7b7a3SRobert Watson 	{ MAC_UPDATE_IPQ,
1008d8a7b7a3SRobert Watson 	    (macop_t)mac_none_update_ipq },
1009d8a7b7a3SRobert Watson 	{ MAC_CREATE_CRED,
1010d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_cred },
1011d8a7b7a3SRobert Watson 	{ MAC_EXECVE_TRANSITION,
1012d8a7b7a3SRobert Watson 	    (macop_t)mac_none_execve_transition },
1013d8a7b7a3SRobert Watson 	{ MAC_EXECVE_WILL_TRANSITION,
1014d8a7b7a3SRobert Watson 	    (macop_t)mac_none_execve_will_transition },
1015d8a7b7a3SRobert Watson 	{ MAC_CREATE_PROC0,
1016d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_proc0 },
1017d8a7b7a3SRobert Watson 	{ MAC_CREATE_PROC1,
1018d8a7b7a3SRobert Watson 	    (macop_t)mac_none_create_proc1 },
1019d8a7b7a3SRobert Watson 	{ MAC_RELABEL_CRED,
1020d8a7b7a3SRobert Watson 	    (macop_t)mac_none_relabel_cred },
1021d8a7b7a3SRobert Watson 	{ MAC_CHECK_BPFDESC_RECEIVE,
1022d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_bpfdesc_receive },
1023d8a7b7a3SRobert Watson 	{ MAC_CHECK_CRED_RELABEL,
1024d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_cred_relabel },
1025d8a7b7a3SRobert Watson 	{ MAC_CHECK_CRED_VISIBLE,
1026d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_cred_visible },
1027d8a7b7a3SRobert Watson 	{ MAC_CHECK_IFNET_RELABEL,
1028d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_ifnet_relabel },
1029d8a7b7a3SRobert Watson 	{ MAC_CHECK_IFNET_TRANSMIT,
1030d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_ifnet_transmit },
1031d8a7b7a3SRobert Watson 	{ MAC_CHECK_MOUNT_STAT,
1032d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_mount_stat },
1033d8a7b7a3SRobert Watson 	{ MAC_CHECK_PIPE_IOCTL,
1034d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_pipe_ioctl },
1035c024c3eeSRobert Watson 	{ MAC_CHECK_PIPE_POLL,
1036c024c3eeSRobert Watson 	    (macop_t)mac_none_check_pipe_poll },
1037c024c3eeSRobert Watson 	{ MAC_CHECK_PIPE_READ,
1038c024c3eeSRobert Watson 	    (macop_t)mac_none_check_pipe_read },
1039d8a7b7a3SRobert Watson 	{ MAC_CHECK_PIPE_RELABEL,
1040d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_pipe_relabel },
1041c024c3eeSRobert Watson 	{ MAC_CHECK_PIPE_STAT,
1042c024c3eeSRobert Watson 	    (macop_t)mac_none_check_pipe_stat },
1043c024c3eeSRobert Watson 	{ MAC_CHECK_PIPE_WRITE,
1044c024c3eeSRobert Watson 	    (macop_t)mac_none_check_pipe_write },
1045d8a7b7a3SRobert Watson 	{ MAC_CHECK_PROC_DEBUG,
1046d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_proc_debug },
1047d8a7b7a3SRobert Watson 	{ MAC_CHECK_PROC_SCHED,
1048d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_proc_sched },
1049d8a7b7a3SRobert Watson 	{ MAC_CHECK_PROC_SIGNAL,
1050d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_proc_signal },
1051d8a7b7a3SRobert Watson 	{ MAC_CHECK_SOCKET_BIND,
1052d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_socket_bind },
1053d8a7b7a3SRobert Watson 	{ MAC_CHECK_SOCKET_CONNECT,
1054d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_socket_connect },
1055fb95b5d3SRobert Watson 	{ MAC_CHECK_SOCKET_DELIVER,
1056fb95b5d3SRobert Watson 	    (macop_t)mac_none_check_socket_deliver },
1057d8a7b7a3SRobert Watson 	{ MAC_CHECK_SOCKET_LISTEN,
1058d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_socket_listen },
1059d8a7b7a3SRobert Watson 	{ MAC_CHECK_SOCKET_RELABEL,
1060d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_socket_relabel },
1061d8a7b7a3SRobert Watson 	{ MAC_CHECK_SOCKET_VISIBLE,
1062d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_socket_visible },
1063d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_ACCESS,
1064d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_access },
1065d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_CHDIR,
1066d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_chdir },
1067d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_CHROOT,
1068d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_chroot },
1069d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_CREATE,
1070d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_create },
1071d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_DELETE,
1072d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_delete },
1073d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_DELETEACL,
1074d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_deleteacl },
1075d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_EXEC,
1076d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_exec },
1077d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_GETACL,
1078d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_getacl },
1079d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_GETEXTATTR,
1080d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_getextattr },
1081c27b50f5SRobert Watson 	{ MAC_CHECK_VNODE_LINK,
1082c27b50f5SRobert Watson 	    (macop_t)mac_none_check_vnode_link },
1083d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_LOOKUP,
1084d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_lookup },
1085e183f80eSRobert Watson 	{ MAC_CHECK_VNODE_MMAP,
1086e183f80eSRobert Watson 	    (macop_t)mac_none_check_vnode_mmap },
1087e183f80eSRobert Watson 	{ MAC_CHECK_VNODE_MPROTECT,
1088e183f80eSRobert Watson 	    (macop_t)mac_none_check_vnode_mprotect },
1089d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_OPEN,
1090d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_open },
10917f724f8bSRobert Watson 	{ MAC_CHECK_VNODE_POLL,
10927f724f8bSRobert Watson 	    (macop_t)mac_none_check_vnode_poll },
10937f724f8bSRobert Watson 	{ MAC_CHECK_VNODE_READ,
10947f724f8bSRobert Watson 	    (macop_t)mac_none_check_vnode_read },
1095d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_READDIR,
1096d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_readdir },
1097d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_READLINK,
1098d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_readlink },
1099d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_RELABEL,
1100d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_relabel },
1101d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_RENAME_FROM,
1102d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_rename_from },
1103d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_RENAME_TO,
1104d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_rename_to },
1105d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_REVOKE,
1106d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_revoke },
1107d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_SETACL,
1108d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_setacl },
1109d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_SETEXTATTR,
1110d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_setextattr },
1111d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_SETFLAGS,
1112d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_setflags },
1113d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_SETMODE,
1114d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_setmode },
1115d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_SETOWNER,
1116d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_setowner },
1117d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_SETUTIMES,
1118d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_setutimes },
1119d8a7b7a3SRobert Watson 	{ MAC_CHECK_VNODE_STAT,
1120d8a7b7a3SRobert Watson 	    (macop_t)mac_none_check_vnode_stat },
11217f724f8bSRobert Watson 	{ MAC_CHECK_VNODE_WRITE,
11227f724f8bSRobert Watson 	    (macop_t)mac_none_check_vnode_write },
1123d8a7b7a3SRobert Watson 	{ MAC_OP_LAST, NULL }
1124d8a7b7a3SRobert Watson };
1125d8a7b7a3SRobert Watson 
1126d8a7b7a3SRobert Watson MAC_POLICY_SET(mac_none_ops, trustedbsd_mac_none, "TrustedBSD MAC/None",
1127740348c4SRobert Watson     MPC_LOADTIME_FLAG_UNLOADOK, NULL);
1128