Bump to version 1.22.1
[platform/upstream/busybox.git] / selinux / load_policy.c
index 83051e6..ce139db 100644 (file)
@@ -1,29 +1,26 @@
 /*
  * load_policy
- * This implementation is based on old load_policy to be small.
  * Author: Yuichi Nakamura <ynakam@hitachisoft.jp>
+ *
+ * Licensed under GPLv2, see file LICENSE in this source tree.
  */
-#include "busybox.h"
 
-int load_policy_main(int argc, char *argv[]);
-int load_policy_main(int argc, char *argv[])
+//usage:#define load_policy_trivial_usage NOUSAGE_STR
+//usage:#define load_policy_full_usage ""
+
+#include "libbb.h"
+
+int load_policy_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+int load_policy_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
 {
-       int fd;
-       struct stat st;
-       void *data;
-       if (argc != 2) {
+       int rc;
+
+       if (argv[1]) {
                bb_show_usage();
        }
 
-       fd = xopen(argv[1], O_RDONLY);
-       if (fstat(fd, &st) < 0) {
-               bb_perror_msg_and_die("can't fstat");
-       }
-       data = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
-       if (data == MAP_FAILED) {
-               bb_perror_msg_and_die("can't mmap");
-       }
-       if (security_load_policy(data, st.st_size) < 0) {
+       rc = selinux_mkload_policy(1);
+       if (rc < 0) {
                bb_perror_msg_and_die("can't load policy");
        }