summaryrefslogtreecommitdiffstats
path: root/lib/libc/posix1e/mac_is_present_np.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2002-10-22 14:36:11 +0000
committerrwatson <rwatson@FreeBSD.org>2002-10-22 14:36:11 +0000
commit9337dcd3d7f73b86c4ea569fc93b485f9eead305 (patch)
tree2e0c60431c18d062390c511daa5eb45f53b66d91 /lib/libc/posix1e/mac_is_present_np.c
parent72a45c8fa6ba77f7317564eeeed31b0be05135b1 (diff)
downloadFreeBSD-src-9337dcd3d7f73b86c4ea569fc93b485f9eead305.zip
FreeBSD-src-9337dcd3d7f73b86c4ea569fc93b485f9eead305.tar.gz
Reflect MAC kernel/user API changes into the libc MAC implementation.
This removes a lot of complexity, since we basically just reserve space on a retrieval of a label, and pass around strings. Two new elements: (1) consumers of the API must now declare what label elements they are interested in retrieving, or (2) rely on the default provided in a new configuration file, mac.conf. Approved by: re Obtained from: TrustedBSD Project Sponsored by: DARPA, Network Associates Laboratories
Diffstat (limited to 'lib/libc/posix1e/mac_is_present_np.c')
-rw-r--r--lib/libc/posix1e/mac_is_present_np.c86
1 files changed, 0 insertions, 86 deletions
diff --git a/lib/libc/posix1e/mac_is_present_np.c b/lib/libc/posix1e/mac_is_present_np.c
deleted file mode 100644
index 8ffabe8..0000000
--- a/lib/libc/posix1e/mac_is_present_np.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*-
- * Copyright (c) 2002 Networks Associates Technology, Inc.
- * All rights reserved.
- *
- * This software was developed for the FreeBSD Project by NAI Labs, the
- * Security Research Division of Network Associates, Inc. under
- * DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA
- * CHATS research program.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-#include <sys/types.h>
-#include <sys/errno.h>
-#include <sys/sysctl.h>
-
-#include <stdlib.h>
-#include <string.h>
-
-/*
- * Simply test whether the TrustedBSD/MAC MIB tree is present; if so,
- * return 1 to indicate that the system has MAC enabled overall or for
- * a given policy.
- */
-
-int
-mac_is_present_np(const char *policyname)
-{
- int mib[5];
- size_t siz;
- char *mibname;
- int error;
-
- if (policyname != NULL) {
- if (policyname[strcspn(policyname, ".=")] != '\0') {
- errno = EINVAL;
- return (-1);
- }
- mibname = malloc(sizeof("security.mac.") - 1 +
- strlen(policyname) + sizeof(".enabled"));
- if (mibname == NULL)
- return (-1);
- strcpy(mibname, "security.mac.");
- strcat(mibname, policyname);
- strcat(mibname, ".enabled");
- siz = 5;
- error = sysctlnametomib(mibname, mib, &siz);
- free(mibname);
- } else {
- siz = 3;
- error = sysctlnametomib("security.mac", mib, &siz);
- }
- if (error == -1) {
- switch (errno) {
- case ENOTDIR:
- case ENOENT:
- return (0);
- default:
- return (error);
- }
- }
- return (1);
-}
OpenPOWER on IntegriCloud