hush/selinux/load_policy.c

32 lines
677 B
C
Raw Normal View History

/*
* load_policy
* This implementation is based on old load_policy to be small.
* Author: Yuichi Nakamura <ynakam@hitachisoft.jp>
*/
#include "busybox.h"
int load_policy_main(int argc, char **argv);
int load_policy_main(int argc, char **argv)
{
int fd;
struct stat st;
void *data;
if (argc != 2) {
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) {
bb_perror_msg_and_die("can't load policy");
}
return 0;
}