load_policy.c 723 B

12345678910111213141516171819202122232425262728293031
  1. /* load_policy.c - Load an SELinux policy file
  2. *
  3. * Copyright 2015 The Android Open Source Project
  4. USE_LOAD_POLICY(NEWTOY(load_policy, "<1>1", TOYFLAG_USR|TOYFLAG_SBIN))
  5. config LOAD_POLICY
  6. bool "load_policy"
  7. depends on TOYBOX_SELINUX
  8. default y
  9. help
  10. usage: load_policy FILE
  11. Load the specified SELinux policy file.
  12. */
  13. #define FOR_load_policy
  14. #include "toys.h"
  15. void load_policy_main(void)
  16. {
  17. int fd = xopenro(*toys.optargs);
  18. off_t policy_len = fdlength(fd);
  19. char *policy_data = xmmap(0, policy_len, PROT_READ, MAP_PRIVATE, fd, 0);
  20. close(fd);
  21. if (security_load_policy(policy_data, policy_len) < 0)
  22. perror_exit("security_load_policy %s", *toys.optargs);
  23. munmap(policy_data, policy_len);
  24. }