Commit 5c458998 authored by Chad Sellers's avatar Chad Sellers Committed by James Morris

SELinux: export object class and permission definitions

Moves the definition of the 3 structs containing object class and
permission definitions from avc.c to avc_ss.h so that the security
server can access them for validation on policy load. This also adds
a new struct type, defined_classes_perms_t, suitable for allowing the
security server to access these data structures from the avc.
Signed-off-by: default avatarChad Sellers <csellers@tresys.com>
Acked-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent 5a64d443
...@@ -32,12 +32,7 @@ ...@@ -32,12 +32,7 @@
#include "avc.h" #include "avc.h"
#include "avc_ss.h" #include "avc_ss.h"
static const struct av_perm_to_string static const struct av_perm_to_string av_perm_to_string[] = {
{
u16 tclass;
u32 value;
const char *name;
} av_perm_to_string[] = {
#define S_(c, v, s) { c, v, s }, #define S_(c, v, s) { c, v, s },
#include "av_perm_to_string.h" #include "av_perm_to_string.h"
#undef S_ #undef S_
...@@ -57,17 +52,21 @@ static const char *class_to_string[] = { ...@@ -57,17 +52,21 @@ static const char *class_to_string[] = {
#undef TE_ #undef TE_
#undef S_ #undef S_
static const struct av_inherit static const struct av_inherit av_inherit[] = {
{
u16 tclass;
const char **common_pts;
u32 common_base;
} av_inherit[] = {
#define S_(c, i, b) { c, common_##i##_perm_to_string, b }, #define S_(c, i, b) { c, common_##i##_perm_to_string, b },
#include "av_inherit.h" #include "av_inherit.h"
#undef S_ #undef S_
}; };
const struct selinux_class_perm selinux_class_perm = {
av_perm_to_string,
ARRAY_SIZE(av_perm_to_string),
class_to_string,
ARRAY_SIZE(class_to_string),
av_inherit,
ARRAY_SIZE(av_inherit)
};
#define AVC_CACHE_SLOTS 512 #define AVC_CACHE_SLOTS 512
#define AVC_DEF_CACHE_THRESHOLD 512 #define AVC_DEF_CACHE_THRESHOLD 512
#define AVC_CACHE_RECLAIM 16 #define AVC_CACHE_RECLAIM 16
......
...@@ -10,5 +10,29 @@ ...@@ -10,5 +10,29 @@
int avc_ss_reset(u32 seqno); int avc_ss_reset(u32 seqno);
struct av_perm_to_string
{
u16 tclass;
u32 value;
const char *name;
};
struct av_inherit
{
u16 tclass;
const char **common_pts;
u32 common_base;
};
struct selinux_class_perm
{
const struct av_perm_to_string *av_perm_to_string;
u32 av_pts_len;
const char **class_to_string;
u32 cts_len;
const struct av_inherit *av_inherit;
u32 av_inherit_len;
};
#endif /* _SELINUX_AVC_SS_H_ */ #endif /* _SELINUX_AVC_SS_H_ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment