Deleted Added
full compact
mac_test.c (168951) mac_test.c (168954)
1/*-
2 * Copyright (c) 1999-2002, 2007 Robert N. M. Watson
3 * Copyright (c) 2001-2005 McAfee, Inc.
4 * All rights reserved.
5 *
6 * This software was developed by Robert Watson for the TrustedBSD Project.
7 *
8 * This software was developed for the FreeBSD Project in part by McAfee

--- 17 unchanged lines hidden (view full) ---

26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
1/*-
2 * Copyright (c) 1999-2002, 2007 Robert N. M. Watson
3 * Copyright (c) 2001-2005 McAfee, Inc.
4 * All rights reserved.
5 *
6 * This software was developed by Robert Watson for the TrustedBSD Project.
7 *
8 * This software was developed for the FreeBSD Project in part by McAfee

--- 17 unchanged lines hidden (view full) ---

26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 *
34 * $FreeBSD: head/sys/security/mac_test/mac_test.c 168951 2007-04-22 15:31:22Z rwatson $
34 * $FreeBSD: head/sys/security/mac_test/mac_test.c 168954 2007-04-22 16:18:10Z rwatson $
35 */
36
37/*
38 * Developed by the TrustedBSD Project.
39 *
40 * MAC Test policy - tests MAC Framework labeling by assigning object class
41 * magic numbers to each label and validates that each time an object label
42 * is passed into the policy, it has a consistent object type, catching

--- 220 unchanged lines hidden (view full) ---

263static void
264mac_test_init_mount_label(struct label *label)
265{
266
267 LABEL_INIT(label, MAGIC_MOUNT);
268 COUNTER_INC(init_mount_label);
269}
270
35 */
36
37/*
38 * Developed by the TrustedBSD Project.
39 *
40 * MAC Test policy - tests MAC Framework labeling by assigning object class
41 * magic numbers to each label and validates that each time an object label
42 * is passed into the policy, it has a consistent object type, catching

--- 220 unchanged lines hidden (view full) ---

263static void
264mac_test_init_mount_label(struct label *label)
265{
266
267 LABEL_INIT(label, MAGIC_MOUNT);
268 COUNTER_INC(init_mount_label);
269}
270
271COUNTER_DECL(init_mount_fs_label);
272static void
273mac_test_init_mount_fs_label(struct label *label)
274{
275
276 LABEL_INIT(label, MAGIC_MOUNT);
277 COUNTER_INC(init_mount_fs_label);
278}
279
280COUNTER_DECL(init_socket_label);
281static int
282mac_test_init_socket_label(struct label *label, int flag)
283{
284
285 if (flag & M_WAITOK)
286 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL,
287 "mac_test_init_socket_label() at %s:%d", __FILE__,

--- 166 unchanged lines hidden (view full) ---

454static void
455mac_test_destroy_mount_label(struct label *label)
456{
457
458 LABEL_DESTROY(label, MAGIC_MOUNT);
459 COUNTER_INC(destroy_mount_label);
460}
461
271COUNTER_DECL(init_socket_label);
272static int
273mac_test_init_socket_label(struct label *label, int flag)
274{
275
276 if (flag & M_WAITOK)
277 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL,
278 "mac_test_init_socket_label() at %s:%d", __FILE__,

--- 166 unchanged lines hidden (view full) ---

445static void
446mac_test_destroy_mount_label(struct label *label)
447{
448
449 LABEL_DESTROY(label, MAGIC_MOUNT);
450 COUNTER_INC(destroy_mount_label);
451}
452
462COUNTER_DECL(destroy_mount_fs_label);
463static void
464mac_test_destroy_mount_fs_label(struct label *label)
465{
466
467 LABEL_DESTROY(label, MAGIC_MOUNT);
468 COUNTER_INC(destroy_mount_fs_label);
469}
470
471COUNTER_DECL(destroy_socket_label);
472static void
473mac_test_destroy_socket_label(struct label *label)
474{
475
476 LABEL_DESTROY(label, MAGIC_SOCKET);
477 COUNTER_INC(destroy_socket_label);
478}

--- 128 unchanged lines hidden (view full) ---

607}
608
609/*
610 * Labeling event operations: file system objects, and things that look
611 * a lot like file system objects.
612 */
613COUNTER_DECL(associate_vnode_devfs);
614static void
453COUNTER_DECL(destroy_socket_label);
454static void
455mac_test_destroy_socket_label(struct label *label)
456{
457
458 LABEL_DESTROY(label, MAGIC_SOCKET);
459 COUNTER_INC(destroy_socket_label);
460}

--- 128 unchanged lines hidden (view full) ---

589}
590
591/*
592 * Labeling event operations: file system objects, and things that look
593 * a lot like file system objects.
594 */
595COUNTER_DECL(associate_vnode_devfs);
596static void
615mac_test_associate_vnode_devfs(struct mount *mp, struct label *fslabel,
597mac_test_associate_vnode_devfs(struct mount *mp, struct label *mntlabel,
616 struct devfs_dirent *de, struct label *delabel, struct vnode *vp,
617 struct label *vlabel)
618{
619
598 struct devfs_dirent *de, struct label *delabel, struct vnode *vp,
599 struct label *vlabel)
600{
601
620 LABEL_CHECK(fslabel, MAGIC_MOUNT);
602 LABEL_CHECK(mntlabel, MAGIC_MOUNT);
621 LABEL_CHECK(delabel, MAGIC_DEVFS);
622 LABEL_CHECK(vlabel, MAGIC_VNODE);
623 COUNTER_INC(associate_vnode_devfs);
624}
625
626COUNTER_DECL(associate_vnode_extattr);
627static int
603 LABEL_CHECK(delabel, MAGIC_DEVFS);
604 LABEL_CHECK(vlabel, MAGIC_VNODE);
605 COUNTER_INC(associate_vnode_devfs);
606}
607
608COUNTER_DECL(associate_vnode_extattr);
609static int
628mac_test_associate_vnode_extattr(struct mount *mp, struct label *fslabel,
610mac_test_associate_vnode_extattr(struct mount *mp, struct label *mntlabel,
629 struct vnode *vp, struct label *vlabel)
630{
631
611 struct vnode *vp, struct label *vlabel)
612{
613
632 LABEL_CHECK(fslabel, MAGIC_MOUNT);
614 LABEL_CHECK(mntlabel, MAGIC_MOUNT);
633 LABEL_CHECK(vlabel, MAGIC_VNODE);
634 COUNTER_INC(associate_vnode_extattr);
635
636 return (0);
637}
638
639COUNTER_DECL(associate_vnode_singlelabel);
640static void
641mac_test_associate_vnode_singlelabel(struct mount *mp,
615 LABEL_CHECK(vlabel, MAGIC_VNODE);
616 COUNTER_INC(associate_vnode_extattr);
617
618 return (0);
619}
620
621COUNTER_DECL(associate_vnode_singlelabel);
622static void
623mac_test_associate_vnode_singlelabel(struct mount *mp,
642 struct label *fslabel, struct vnode *vp, struct label *vlabel)
624 struct label *mntlabel, struct vnode *vp, struct label *vlabel)
643{
644
625{
626
645 LABEL_CHECK(fslabel, MAGIC_MOUNT);
627 LABEL_CHECK(mntlabel, MAGIC_MOUNT);
646 LABEL_CHECK(vlabel, MAGIC_VNODE);
647 COUNTER_INC(associate_vnode_singlelabel);
648}
649
650COUNTER_DECL(create_devfs_device);
651static void
652mac_test_create_devfs_device(struct ucred *cred, struct mount *mp,
653 struct cdev *dev, struct devfs_dirent *devfs_dirent, struct label *label)

--- 26 unchanged lines hidden (view full) ---

680 LABEL_CHECK(ddlabel, MAGIC_DEVFS);
681 LABEL_CHECK(delabel, MAGIC_DEVFS);
682 COUNTER_INC(create_devfs_symlink);
683}
684
685COUNTER_DECL(create_vnode_extattr);
686static int
687mac_test_create_vnode_extattr(struct ucred *cred, struct mount *mp,
628 LABEL_CHECK(vlabel, MAGIC_VNODE);
629 COUNTER_INC(associate_vnode_singlelabel);
630}
631
632COUNTER_DECL(create_devfs_device);
633static void
634mac_test_create_devfs_device(struct ucred *cred, struct mount *mp,
635 struct cdev *dev, struct devfs_dirent *devfs_dirent, struct label *label)

--- 26 unchanged lines hidden (view full) ---

662 LABEL_CHECK(ddlabel, MAGIC_DEVFS);
663 LABEL_CHECK(delabel, MAGIC_DEVFS);
664 COUNTER_INC(create_devfs_symlink);
665}
666
667COUNTER_DECL(create_vnode_extattr);
668static int
669mac_test_create_vnode_extattr(struct ucred *cred, struct mount *mp,
688 struct label *fslabel, struct vnode *dvp, struct label *dlabel,
670 struct label *mntlabel, struct vnode *dvp, struct label *dlabel,
689 struct vnode *vp, struct label *vlabel, struct componentname *cnp)
690{
691
692 LABEL_CHECK(cred->cr_label, MAGIC_CRED);
671 struct vnode *vp, struct label *vlabel, struct componentname *cnp)
672{
673
674 LABEL_CHECK(cred->cr_label, MAGIC_CRED);
693 LABEL_CHECK(fslabel, MAGIC_MOUNT);
675 LABEL_CHECK(mntlabel, MAGIC_MOUNT);
694 LABEL_CHECK(dlabel, MAGIC_VNODE);
695 COUNTER_INC(create_vnode_extattr);
696
697 return (0);
698}
699
700COUNTER_DECL(create_mount);
701static void
702mac_test_create_mount(struct ucred *cred, struct mount *mp,
676 LABEL_CHECK(dlabel, MAGIC_VNODE);
677 COUNTER_INC(create_vnode_extattr);
678
679 return (0);
680}
681
682COUNTER_DECL(create_mount);
683static void
684mac_test_create_mount(struct ucred *cred, struct mount *mp,
703 struct label *mntlabel, struct label *fslabel)
685 struct label *mntlabel)
704{
705
706 LABEL_CHECK(cred->cr_label, MAGIC_CRED);
707 LABEL_CHECK(mntlabel, MAGIC_MOUNT);
686{
687
688 LABEL_CHECK(cred->cr_label, MAGIC_CRED);
689 LABEL_CHECK(mntlabel, MAGIC_MOUNT);
708 LABEL_CHECK(fslabel, MAGIC_MOUNT);
709 COUNTER_INC(create_mount);
710}
711
712COUNTER_DECL(relabel_vnode);
713static void
714mac_test_relabel_vnode(struct ucred *cred, struct vnode *vp,
715 struct label *vnodelabel, struct label *label)
716{

--- 1768 unchanged lines hidden (view full) ---

2485 .mpo_init_sysv_msgmsg_label = mac_test_init_sysv_msgmsg_label,
2486 .mpo_init_sysv_msgqueue_label = mac_test_init_sysv_msgqueue_label,
2487 .mpo_init_sysv_sem_label = mac_test_init_sysv_sem_label,
2488 .mpo_init_sysv_shm_label = mac_test_init_sysv_shm_label,
2489 .mpo_init_inpcb_label = mac_test_init_inpcb_label,
2490 .mpo_init_ipq_label = mac_test_init_ipq_label,
2491 .mpo_init_mbuf_label = mac_test_init_mbuf_label,
2492 .mpo_init_mount_label = mac_test_init_mount_label,
690 COUNTER_INC(create_mount);
691}
692
693COUNTER_DECL(relabel_vnode);
694static void
695mac_test_relabel_vnode(struct ucred *cred, struct vnode *vp,
696 struct label *vnodelabel, struct label *label)
697{

--- 1768 unchanged lines hidden (view full) ---

2466 .mpo_init_sysv_msgmsg_label = mac_test_init_sysv_msgmsg_label,
2467 .mpo_init_sysv_msgqueue_label = mac_test_init_sysv_msgqueue_label,
2468 .mpo_init_sysv_sem_label = mac_test_init_sysv_sem_label,
2469 .mpo_init_sysv_shm_label = mac_test_init_sysv_shm_label,
2470 .mpo_init_inpcb_label = mac_test_init_inpcb_label,
2471 .mpo_init_ipq_label = mac_test_init_ipq_label,
2472 .mpo_init_mbuf_label = mac_test_init_mbuf_label,
2473 .mpo_init_mount_label = mac_test_init_mount_label,
2493 .mpo_init_mount_fs_label = mac_test_init_mount_fs_label,
2494 .mpo_init_pipe_label = mac_test_init_pipe_label,
2495 .mpo_init_posix_sem_label = mac_test_init_posix_sem_label,
2496 .mpo_init_proc_label = mac_test_init_proc_label,
2497 .mpo_init_socket_label = mac_test_init_socket_label,
2498 .mpo_init_socket_peer_label = mac_test_init_socket_peer_label,
2499 .mpo_init_vnode_label = mac_test_init_vnode_label,
2500 .mpo_destroy_bpfdesc_label = mac_test_destroy_bpfdesc_label,
2501 .mpo_destroy_cred_label = mac_test_destroy_cred_label,
2502 .mpo_destroy_devfsdirent_label = mac_test_destroy_devfsdirent_label,
2503 .mpo_destroy_ifnet_label = mac_test_destroy_ifnet_label,
2504 .mpo_destroy_sysv_msgmsg_label = mac_test_destroy_sysv_msgmsg_label,
2505 .mpo_destroy_sysv_msgqueue_label =
2506 mac_test_destroy_sysv_msgqueue_label,
2507 .mpo_destroy_sysv_sem_label = mac_test_destroy_sysv_sem_label,
2508 .mpo_destroy_sysv_shm_label = mac_test_destroy_sysv_shm_label,
2509 .mpo_destroy_inpcb_label = mac_test_destroy_inpcb_label,
2510 .mpo_destroy_ipq_label = mac_test_destroy_ipq_label,
2511 .mpo_destroy_mbuf_label = mac_test_destroy_mbuf_label,
2512 .mpo_destroy_mount_label = mac_test_destroy_mount_label,
2474 .mpo_init_pipe_label = mac_test_init_pipe_label,
2475 .mpo_init_posix_sem_label = mac_test_init_posix_sem_label,
2476 .mpo_init_proc_label = mac_test_init_proc_label,
2477 .mpo_init_socket_label = mac_test_init_socket_label,
2478 .mpo_init_socket_peer_label = mac_test_init_socket_peer_label,
2479 .mpo_init_vnode_label = mac_test_init_vnode_label,
2480 .mpo_destroy_bpfdesc_label = mac_test_destroy_bpfdesc_label,
2481 .mpo_destroy_cred_label = mac_test_destroy_cred_label,
2482 .mpo_destroy_devfsdirent_label = mac_test_destroy_devfsdirent_label,
2483 .mpo_destroy_ifnet_label = mac_test_destroy_ifnet_label,
2484 .mpo_destroy_sysv_msgmsg_label = mac_test_destroy_sysv_msgmsg_label,
2485 .mpo_destroy_sysv_msgqueue_label =
2486 mac_test_destroy_sysv_msgqueue_label,
2487 .mpo_destroy_sysv_sem_label = mac_test_destroy_sysv_sem_label,
2488 .mpo_destroy_sysv_shm_label = mac_test_destroy_sysv_shm_label,
2489 .mpo_destroy_inpcb_label = mac_test_destroy_inpcb_label,
2490 .mpo_destroy_ipq_label = mac_test_destroy_ipq_label,
2491 .mpo_destroy_mbuf_label = mac_test_destroy_mbuf_label,
2492 .mpo_destroy_mount_label = mac_test_destroy_mount_label,
2513 .mpo_destroy_mount_fs_label = mac_test_destroy_mount_fs_label,
2514 .mpo_destroy_pipe_label = mac_test_destroy_pipe_label,
2515 .mpo_destroy_posix_sem_label = mac_test_destroy_posix_sem_label,
2516 .mpo_destroy_proc_label = mac_test_destroy_proc_label,
2517 .mpo_destroy_socket_label = mac_test_destroy_socket_label,
2518 .mpo_destroy_socket_peer_label = mac_test_destroy_socket_peer_label,
2519 .mpo_destroy_vnode_label = mac_test_destroy_vnode_label,
2520 .mpo_copy_cred_label = mac_test_copy_cred_label,
2521 .mpo_copy_ifnet_label = mac_test_copy_ifnet_label,

--- 175 unchanged lines hidden ---
2493 .mpo_destroy_pipe_label = mac_test_destroy_pipe_label,
2494 .mpo_destroy_posix_sem_label = mac_test_destroy_posix_sem_label,
2495 .mpo_destroy_proc_label = mac_test_destroy_proc_label,
2496 .mpo_destroy_socket_label = mac_test_destroy_socket_label,
2497 .mpo_destroy_socket_peer_label = mac_test_destroy_socket_peer_label,
2498 .mpo_destroy_vnode_label = mac_test_destroy_vnode_label,
2499 .mpo_copy_cred_label = mac_test_copy_cred_label,
2500 .mpo_copy_ifnet_label = mac_test_copy_ifnet_label,

--- 175 unchanged lines hidden ---