summaryrefslogtreecommitdiff
path: root/src/compute_create.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/compute_create.c')
-rw-r--r--src/compute_create.c61
1 files changed, 0 insertions, 61 deletions
diff --git a/src/compute_create.c b/src/compute_create.c
deleted file mode 100644
index d3b16c9..0000000
--- a/src/compute_create.c
+++ /dev/null
@@ -1,61 +0,0 @@
-#include <unistd.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <limits.h>
-#include "selinux_internal.h"
-#include "policy.h"
-#include "mapping.h"
-
-int security_compute_create(const char * scon,
- const char * tcon,
- security_class_t tclass,
- char ** newcon)
-{
- char path[PATH_MAX];
- char *buf;
- size_t size;
- int fd, ret;
-
- if (!selinux_mnt) {
- errno = ENOENT;
- return -1;
- }
-
- snprintf(path, sizeof path, "%s/create", selinux_mnt);
- fd = open(path, O_RDWR);
- if (fd < 0)
- return -1;
-
- size = selinux_page_size;
- buf = malloc(size);
- if (!buf) {
- ret = -1;
- goto out;
- }
- snprintf(buf, size, "%s %s %hu", scon, tcon, unmap_class(tclass));
-
- ret = write(fd, buf, strlen(buf));
- if (ret < 0)
- goto out2;
-
- memset(buf, 0, size);
- ret = read(fd, buf, size - 1);
- if (ret < 0)
- goto out2;
-
- *newcon = strdup(buf);
- if (!(*newcon)) {
- ret = -1;
- goto out2;
- }
- ret = 0;
- out2:
- free(buf);
- out:
- close(fd);
- return ret;
-}