mac_biba.c (106788) | mac_biba.c (107698) |
---|---|
1/*- 2 * Copyright (c) 1999, 2000, 2001, 2002 Robert N. M. Watson 3 * Copyright (c) 2001, 2002 Networks Associates Technology, 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 Network --- 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, 2000, 2001, 2002 Robert N. M. Watson 3 * Copyright (c) 2001, 2002 Networks Associates Technology, 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 Network --- 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_biba/mac_biba.c 106788 2002-11-12 04:20:36Z rwatson $ | 34 * $FreeBSD: head/sys/security/mac_biba/mac_biba.c 107698 2002-12-09 03:44:28Z rwatson $ |
35 */ 36 37/* 38 * Developed by the TrustedBSD Project. 39 * Biba fixed label mandatory integrity policy. 40 */ 41 42#include <sys/types.h> --- 752 unchanged lines hidden (view full) --- 795 *SLOT(dest) = *SLOT(src); 796} 797 798/* 799 * Labeling event operations: file system objects, and things that look 800 * a lot like file system objects. 801 */ 802static void | 35 */ 36 37/* 38 * Developed by the TrustedBSD Project. 39 * Biba fixed label mandatory integrity policy. 40 */ 41 42#include <sys/types.h> --- 752 unchanged lines hidden (view full) --- 795 *SLOT(dest) = *SLOT(src); 796} 797 798/* 799 * Labeling event operations: file system objects, and things that look 800 * a lot like file system objects. 801 */ 802static void |
803mac_biba_create_devfs_device(dev_t dev, struct devfs_dirent *devfs_dirent, 804 struct label *label) | 803mac_biba_create_devfs_device(struct mount *mp, dev_t dev, 804 struct devfs_dirent *devfs_dirent, struct label *label) |
805{ 806 struct mac_biba *mac_biba; 807 int biba_type; 808 809 mac_biba = SLOT(label); 810 if (strcmp(dev->si_name, "null") == 0 || 811 strcmp(dev->si_name, "zero") == 0 || 812 strcmp(dev->si_name, "random") == 0 || --- 4 unchanged lines hidden (view full) --- 817 strncmp(dev->si_name, "ptyp", strlen("ptyp")) == 0)) 818 biba_type = MAC_BIBA_TYPE_EQUAL; 819 else 820 biba_type = MAC_BIBA_TYPE_HIGH; 821 mac_biba_set_single(mac_biba, biba_type, 0, NULL); 822} 823 824static void | 805{ 806 struct mac_biba *mac_biba; 807 int biba_type; 808 809 mac_biba = SLOT(label); 810 if (strcmp(dev->si_name, "null") == 0 || 811 strcmp(dev->si_name, "zero") == 0 || 812 strcmp(dev->si_name, "random") == 0 || --- 4 unchanged lines hidden (view full) --- 817 strncmp(dev->si_name, "ptyp", strlen("ptyp")) == 0)) 818 biba_type = MAC_BIBA_TYPE_EQUAL; 819 else 820 biba_type = MAC_BIBA_TYPE_HIGH; 821 mac_biba_set_single(mac_biba, biba_type, 0, NULL); 822} 823 824static void |
825mac_biba_create_devfs_directory(char *dirname, int dirnamelen, 826 struct devfs_dirent *devfs_dirent, struct label *label) | 825mac_biba_create_devfs_directory(struct mount *mp, char *dirname, 826 int dirnamelen, struct devfs_dirent *devfs_dirent, struct label *label) |
827{ 828 struct mac_biba *mac_biba; 829 830 mac_biba = SLOT(label); 831 mac_biba_set_single(mac_biba, MAC_BIBA_TYPE_HIGH, 0, NULL); 832} 833 834static void | 827{ 828 struct mac_biba *mac_biba; 829 830 mac_biba = SLOT(label); 831 mac_biba_set_single(mac_biba, MAC_BIBA_TYPE_HIGH, 0, NULL); 832} 833 834static void |
835mac_biba_create_devfs_symlink(struct ucred *cred, struct devfs_dirent *dd, 836 struct label *ddlabel, struct devfs_dirent *de, struct label *delabel) | 835mac_biba_create_devfs_symlink(struct ucred *cred, struct mount *mp, 836 struct devfs_dirent *dd, struct label *ddlabel, struct devfs_dirent *de, 837 struct label *delabel) |
837{ 838 struct mac_biba *source, *dest; 839 840 source = SLOT(&cred->cr_label); 841 dest = SLOT(delabel); 842 843 mac_biba_copy_single(source, dest); 844} --- 32 unchanged lines hidden (view full) --- 877 878 source = SLOT(label); 879 dest = SLOT(vnodelabel); 880 881 mac_biba_copy(source, dest); 882} 883 884static void | 838{ 839 struct mac_biba *source, *dest; 840 841 source = SLOT(&cred->cr_label); 842 dest = SLOT(delabel); 843 844 mac_biba_copy_single(source, dest); 845} --- 32 unchanged lines hidden (view full) --- 878 879 source = SLOT(label); 880 dest = SLOT(vnodelabel); 881 882 mac_biba_copy(source, dest); 883} 884 885static void |
885mac_biba_update_devfsdirent(struct devfs_dirent *devfs_dirent, 886 struct label *direntlabel, struct vnode *vp, struct label *vnodelabel) | 886mac_biba_update_devfsdirent(struct mount *mp, 887 struct devfs_dirent *devfs_dirent, struct label *direntlabel, 888 struct vnode *vp, struct label *vnodelabel) |
887{ 888 struct mac_biba *source, *dest; 889 890 source = SLOT(vnodelabel); 891 dest = SLOT(direntlabel); 892 893 mac_biba_copy(source, dest); 894} --- 1775 unchanged lines hidden --- | 889{ 890 struct mac_biba *source, *dest; 891 892 source = SLOT(vnodelabel); 893 dest = SLOT(direntlabel); 894 895 mac_biba_copy(source, dest); 896} --- 1775 unchanged lines hidden --- |