#include #include #include #include #include #include #include "selinux_internal.h" #include #include "policy.h" #include "dso.h" #include #define DEFAULT_POLICY_VERSION 15 int security_policyvers(void) { int fd, ret; char path[PATH_MAX]; char buf[20]; unsigned vers = DEFAULT_POLICY_VERSION; snprintf(path, sizeof path, "%s/policyvers", selinux_mnt); fd = open(path, O_RDONLY); if (fd < 0) { if (errno == ENOENT) return vers; else return -1; } memset(buf, 0, sizeof buf); ret = read(fd, buf, sizeof buf-1); close(fd); if (ret < 0) return -1; if (sscanf(buf, "%u", &vers) != 1) return -1; return vers; } hidden_def(security_policyvers)