diff options
Diffstat (limited to 'security/smack/smack.h')
-rw-r--r-- | security/smack/smack.h | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/security/smack/smack.h b/security/smack/smack.h index 2b6c6a516123..174d3be9aaee 100644 --- a/security/smack/smack.h +++ b/security/smack/smack.h | |||
@@ -41,9 +41,9 @@ struct superblock_smack { | |||
41 | }; | 41 | }; |
42 | 42 | ||
43 | struct socket_smack { | 43 | struct socket_smack { |
44 | char *smk_out; /* outbound label */ | 44 | char *smk_out; /* outbound label */ |
45 | char *smk_in; /* inbound label */ | 45 | char *smk_in; /* inbound label */ |
46 | char smk_packet[SMK_LABELLEN]; /* TCP peer label */ | 46 | char *smk_packet; /* TCP peer label */ |
47 | }; | 47 | }; |
48 | 48 | ||
49 | /* | 49 | /* |
@@ -116,13 +116,19 @@ struct smk_netlbladdr { | |||
116 | * If there is a cipso value associated with the label it | 116 | * If there is a cipso value associated with the label it |
117 | * gets stored here, too. This will most likely be rare as | 117 | * gets stored here, too. This will most likely be rare as |
118 | * the cipso direct mapping in used internally. | 118 | * the cipso direct mapping in used internally. |
119 | * | ||
120 | * Keep the access rules for this subject label here so that | ||
121 | * the entire set of rules does not need to be examined every | ||
122 | * time. | ||
119 | */ | 123 | */ |
120 | struct smack_known { | 124 | struct smack_known { |
121 | struct list_head list; | 125 | struct list_head list; |
122 | char smk_known[SMK_LABELLEN]; | 126 | char smk_known[SMK_LABELLEN]; |
123 | u32 smk_secid; | 127 | u32 smk_secid; |
124 | struct smack_cipso *smk_cipso; | 128 | struct smack_cipso *smk_cipso; |
125 | spinlock_t smk_cipsolock; /* for changing cipso map */ | 129 | spinlock_t smk_cipsolock; /* for changing cipso map */ |
130 | struct list_head smk_rules; /* access rules */ | ||
131 | struct mutex smk_rules_lock; /* lock for the rules */ | ||
126 | }; | 132 | }; |
127 | 133 | ||
128 | /* | 134 | /* |
@@ -201,10 +207,11 @@ int smk_access_entry(char *, char *, struct list_head *); | |||
201 | int smk_access(char *, char *, int, struct smk_audit_info *); | 207 | int smk_access(char *, char *, int, struct smk_audit_info *); |
202 | int smk_curacc(char *, u32, struct smk_audit_info *); | 208 | int smk_curacc(char *, u32, struct smk_audit_info *); |
203 | int smack_to_cipso(const char *, struct smack_cipso *); | 209 | int smack_to_cipso(const char *, struct smack_cipso *); |
204 | void smack_from_cipso(u32, char *, char *); | 210 | char *smack_from_cipso(u32, char *); |
205 | char *smack_from_secid(const u32); | 211 | char *smack_from_secid(const u32); |
206 | char *smk_import(const char *, int); | 212 | char *smk_import(const char *, int); |
207 | struct smack_known *smk_import_entry(const char *, int); | 213 | struct smack_known *smk_import_entry(const char *, int); |
214 | struct smack_known *smk_find_entry(const char *); | ||
208 | u32 smack_to_secid(const char *); | 215 | u32 smack_to_secid(const char *); |
209 | 216 | ||
210 | /* | 217 | /* |
@@ -223,7 +230,6 @@ extern struct smack_known smack_known_star; | |||
223 | extern struct smack_known smack_known_web; | 230 | extern struct smack_known smack_known_web; |
224 | 231 | ||
225 | extern struct list_head smack_known_list; | 232 | extern struct list_head smack_known_list; |
226 | extern struct list_head smack_rule_list; | ||
227 | extern struct list_head smk_netlbladdr_list; | 233 | extern struct list_head smk_netlbladdr_list; |
228 | 234 | ||
229 | extern struct security_operations smack_ops; | 235 | extern struct security_operations smack_ops; |