mirror of
https://github.com/ukui/kernel.git
synced 2026-03-09 10:07:04 -07:00
TOMOYO: Rename symbols.
Use shorter name in order to make it easier to fit 80 columns limit. Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Signed-off-by: James Morris <jmorris@namei.org>
This commit is contained in:
committed by
James Morris
parent
8e5686874b
commit
e2bf69077a
File diff suppressed because it is too large
Load Diff
@@ -310,10 +310,10 @@ struct tomoyo_path_info {
|
||||
};
|
||||
|
||||
/*
|
||||
* tomoyo_name_entry is a structure which is used for linking
|
||||
* tomoyo_name is a structure which is used for linking
|
||||
* "struct tomoyo_path_info" into tomoyo_name_list .
|
||||
*/
|
||||
struct tomoyo_name_entry {
|
||||
struct tomoyo_name {
|
||||
struct list_head list;
|
||||
atomic_t users;
|
||||
struct tomoyo_path_info entry;
|
||||
@@ -572,20 +572,20 @@ struct tomoyo_io_buffer {
|
||||
};
|
||||
|
||||
/*
|
||||
* tomoyo_globally_readable_file_entry is a structure which is used for holding
|
||||
* tomoyo_readable_file is a structure which is used for holding
|
||||
* "allow_read" entries.
|
||||
* It has following fields.
|
||||
*
|
||||
* (1) "head" is "struct tomoyo_acl_head".
|
||||
* (2) "filename" is a pathname which is allowed to open(O_RDONLY).
|
||||
*/
|
||||
struct tomoyo_globally_readable_file_entry {
|
||||
struct tomoyo_readable_file {
|
||||
struct tomoyo_acl_head head;
|
||||
const struct tomoyo_path_info *filename;
|
||||
};
|
||||
|
||||
/*
|
||||
* tomoyo_pattern_entry is a structure which is used for holding
|
||||
* tomoyo_no_pattern is a structure which is used for holding
|
||||
* "file_pattern" entries.
|
||||
* It has following fields.
|
||||
*
|
||||
@@ -593,13 +593,13 @@ struct tomoyo_globally_readable_file_entry {
|
||||
* (2) "pattern" is a pathname pattern which is used for converting pathnames
|
||||
* to pathname patterns during learning mode.
|
||||
*/
|
||||
struct tomoyo_pattern_entry {
|
||||
struct tomoyo_no_pattern {
|
||||
struct tomoyo_acl_head head;
|
||||
const struct tomoyo_path_info *pattern;
|
||||
};
|
||||
|
||||
/*
|
||||
* tomoyo_no_rewrite_entry is a structure which is used for holding
|
||||
* tomoyo_no_rewrite is a structure which is used for holding
|
||||
* "deny_rewrite" entries.
|
||||
* It has following fields.
|
||||
*
|
||||
@@ -607,7 +607,7 @@ struct tomoyo_pattern_entry {
|
||||
* (2) "pattern" is a pathname which is by default not permitted to modify
|
||||
* already existing content.
|
||||
*/
|
||||
struct tomoyo_no_rewrite_entry {
|
||||
struct tomoyo_no_rewrite {
|
||||
struct tomoyo_acl_head head;
|
||||
const struct tomoyo_path_info *pattern;
|
||||
};
|
||||
@@ -636,7 +636,7 @@ struct tomoyo_transition_control {
|
||||
};
|
||||
|
||||
/*
|
||||
* tomoyo_aggregator_entry is a structure which is used for holding
|
||||
* tomoyo_aggregator is a structure which is used for holding
|
||||
* "aggregator" entries.
|
||||
* It has following fields.
|
||||
*
|
||||
@@ -644,14 +644,14 @@ struct tomoyo_transition_control {
|
||||
* (2) "original_name" which is originally requested name.
|
||||
* (3) "aggregated_name" which is name to rewrite.
|
||||
*/
|
||||
struct tomoyo_aggregator_entry {
|
||||
struct tomoyo_aggregator {
|
||||
struct tomoyo_acl_head head;
|
||||
const struct tomoyo_path_info *original_name;
|
||||
const struct tomoyo_path_info *aggregated_name;
|
||||
};
|
||||
|
||||
/*
|
||||
* tomoyo_policy_manager_entry is a structure which is used for holding list of
|
||||
* tomoyo_manager is a structure which is used for holding list of
|
||||
* domainnames or programs which are permitted to modify configuration via
|
||||
* /sys/kernel/security/tomoyo/ interface.
|
||||
* It has following fields.
|
||||
@@ -661,7 +661,7 @@ struct tomoyo_aggregator_entry {
|
||||
* otherwise.
|
||||
* (3) "manager" is a domainname or a program's pathname.
|
||||
*/
|
||||
struct tomoyo_policy_manager_entry {
|
||||
struct tomoyo_manager {
|
||||
struct tomoyo_acl_head head;
|
||||
bool is_domain; /* True if manager is a domainname. */
|
||||
/* A path to program or a domainname. */
|
||||
@@ -749,8 +749,6 @@ bool tomoyo_parse_number_union(char *data, struct tomoyo_number_union *num);
|
||||
bool tomoyo_tokenize(char *buffer, char *w[], size_t size);
|
||||
/* Write domain policy violation warning message to console? */
|
||||
bool tomoyo_verbose_mode(const struct tomoyo_domain_info *domain);
|
||||
/* Get the last component of the given domainname. */
|
||||
const char *tomoyo_get_last_name(const struct tomoyo_domain_info *domain);
|
||||
/* Fill "struct tomoyo_request_info". */
|
||||
int tomoyo_init_request_info(struct tomoyo_request_info *r,
|
||||
struct tomoyo_domain_info *domain,
|
||||
@@ -759,7 +757,7 @@ int tomoyo_init_request_info(struct tomoyo_request_info *r,
|
||||
int tomoyo_mount_permission(char *dev_name, struct path *path, char *type,
|
||||
unsigned long flags, void *data_page);
|
||||
/* Create "aggregator" entry in exception policy. */
|
||||
int tomoyo_write_aggregator_policy(char *data, const bool is_delete);
|
||||
int tomoyo_write_aggregator(char *data, const bool is_delete);
|
||||
int tomoyo_write_transition_control(char *data, const bool is_delete,
|
||||
const u8 type);
|
||||
/*
|
||||
@@ -769,17 +767,17 @@ int tomoyo_write_transition_control(char *data, const bool is_delete,
|
||||
* "allow_truncate", "allow_symlink", "allow_rewrite", "allow_rename" and
|
||||
* "allow_link" entry in domain policy.
|
||||
*/
|
||||
int tomoyo_write_file_policy(char *data, struct tomoyo_domain_info *domain,
|
||||
const bool is_delete);
|
||||
int tomoyo_write_file(char *data, struct tomoyo_domain_info *domain,
|
||||
const bool is_delete);
|
||||
/* Create "allow_read" entry in exception policy. */
|
||||
int tomoyo_write_globally_readable_policy(char *data, const bool is_delete);
|
||||
int tomoyo_write_globally_readable(char *data, const bool is_delete);
|
||||
/* Create "allow_mount" entry in domain policy. */
|
||||
int tomoyo_write_mount_policy(char *data, struct tomoyo_domain_info *domain,
|
||||
const bool is_delete);
|
||||
int tomoyo_write_mount(char *data, struct tomoyo_domain_info *domain,
|
||||
const bool is_delete);
|
||||
/* Create "deny_rewrite" entry in exception policy. */
|
||||
int tomoyo_write_no_rewrite_policy(char *data, const bool is_delete);
|
||||
int tomoyo_write_no_rewrite(char *data, const bool is_delete);
|
||||
/* Create "file_pattern" entry in exception policy. */
|
||||
int tomoyo_write_pattern_policy(char *data, const bool is_delete);
|
||||
int tomoyo_write_pattern(char *data, const bool is_delete);
|
||||
/* Create "path_group"/"number_group" entry in exception policy. */
|
||||
int tomoyo_write_group(char *data, const bool is_delete, const u8 type);
|
||||
int tomoyo_supervisor(struct tomoyo_request_info *r, const char *fmt, ...)
|
||||
@@ -787,9 +785,8 @@ int tomoyo_supervisor(struct tomoyo_request_info *r, const char *fmt, ...)
|
||||
/* Find a domain by the given name. */
|
||||
struct tomoyo_domain_info *tomoyo_find_domain(const char *domainname);
|
||||
/* Find or create a domain by the given name. */
|
||||
struct tomoyo_domain_info *tomoyo_find_or_assign_new_domain(const char *
|
||||
domainname,
|
||||
const u8 profile);
|
||||
struct tomoyo_domain_info *tomoyo_assign_domain(const char *domainname,
|
||||
const u8 profile);
|
||||
struct tomoyo_profile *tomoyo_profile(const u8 profile);
|
||||
/*
|
||||
* Allocate memory for "struct tomoyo_path_group"/"struct tomoyo_number_group".
|
||||
@@ -820,7 +817,7 @@ char *tomoyo_realpath_nofollow(const char *pathname);
|
||||
*/
|
||||
char *tomoyo_realpath_from_path(struct path *path);
|
||||
/* Get patterned pathname. */
|
||||
const char *tomoyo_file_pattern(const struct tomoyo_path_info *filename);
|
||||
const char *tomoyo_pattern(const struct tomoyo_path_info *filename);
|
||||
|
||||
/* Check memory quota. */
|
||||
bool tomoyo_memory_ok(void *ptr);
|
||||
@@ -882,7 +879,6 @@ int tomoyo_update_policy(struct tomoyo_acl_head *new_entry, const int size,
|
||||
void tomoyo_check_acl(struct tomoyo_request_info *r,
|
||||
bool (*check_entry) (const struct tomoyo_request_info *,
|
||||
const struct tomoyo_acl_info *));
|
||||
const char *tomoyo_last_word(const char *name);
|
||||
|
||||
/********** External variable definitions. **********/
|
||||
|
||||
@@ -959,8 +955,8 @@ static inline bool tomoyo_invalid(const unsigned char c)
|
||||
static inline void tomoyo_put_name(const struct tomoyo_path_info *name)
|
||||
{
|
||||
if (name) {
|
||||
struct tomoyo_name_entry *ptr =
|
||||
container_of(name, struct tomoyo_name_entry, entry);
|
||||
struct tomoyo_name *ptr =
|
||||
container_of(name, typeof(*ptr), entry);
|
||||
atomic_dec(&ptr->users);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,26 +134,22 @@ struct list_head tomoyo_policy_list[TOMOYO_MAX_POLICY];
|
||||
struct list_head tomoyo_group_list[TOMOYO_MAX_GROUP];
|
||||
|
||||
/**
|
||||
* tomoyo_get_last_name - Get last component of a domainname.
|
||||
* tomoyo_last_word - Get last component of a domainname.
|
||||
*
|
||||
* @domain: Pointer to "struct tomoyo_domain_info".
|
||||
* @domainname: Domainname to check.
|
||||
*
|
||||
* Returns the last component of the domainname.
|
||||
* Returns the last word of @domainname.
|
||||
*/
|
||||
const char *tomoyo_get_last_name(const struct tomoyo_domain_info *domain)
|
||||
static const char *tomoyo_last_word(const char *name)
|
||||
{
|
||||
const char *cp0 = domain->domainname->name;
|
||||
const char *cp1 = strrchr(cp0, ' ');
|
||||
|
||||
if (cp1)
|
||||
return cp1 + 1;
|
||||
return cp0;
|
||||
const char *cp = strrchr(name, ' ');
|
||||
if (cp)
|
||||
return cp + 1;
|
||||
return name;
|
||||
}
|
||||
|
||||
static bool tomoyo_same_transition_control_entry(const struct tomoyo_acl_head *
|
||||
a,
|
||||
const struct tomoyo_acl_head *
|
||||
b)
|
||||
static bool tomoyo_same_transition_control(const struct tomoyo_acl_head *a,
|
||||
const struct tomoyo_acl_head *b)
|
||||
{
|
||||
const struct tomoyo_transition_control *p1 = container_of(a,
|
||||
typeof(*p1),
|
||||
@@ -203,7 +199,7 @@ static int tomoyo_update_transition_control_entry(const char *domainname,
|
||||
error = tomoyo_update_policy(&e.head, sizeof(e), is_delete,
|
||||
&tomoyo_policy_list
|
||||
[TOMOYO_ID_TRANSITION_CONTROL],
|
||||
tomoyo_same_transition_control_entry);
|
||||
tomoyo_same_transition_control);
|
||||
out:
|
||||
tomoyo_put_name(e.domainname);
|
||||
tomoyo_put_name(e.program);
|
||||
@@ -292,19 +288,17 @@ static u8 tomoyo_transition_type(const struct tomoyo_path_info *domainname,
|
||||
return type;
|
||||
}
|
||||
|
||||
static bool tomoyo_same_aggregator_entry(const struct tomoyo_acl_head *a,
|
||||
const struct tomoyo_acl_head *b)
|
||||
static bool tomoyo_same_aggregator(const struct tomoyo_acl_head *a,
|
||||
const struct tomoyo_acl_head *b)
|
||||
{
|
||||
const struct tomoyo_aggregator_entry *p1 = container_of(a, typeof(*p1),
|
||||
head);
|
||||
const struct tomoyo_aggregator_entry *p2 = container_of(b, typeof(*p2),
|
||||
head);
|
||||
const struct tomoyo_aggregator *p1 = container_of(a, typeof(*p1), head);
|
||||
const struct tomoyo_aggregator *p2 = container_of(b, typeof(*p2), head);
|
||||
return p1->original_name == p2->original_name &&
|
||||
p1->aggregated_name == p2->aggregated_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* tomoyo_update_aggregator_entry - Update "struct tomoyo_aggregator_entry" list.
|
||||
* tomoyo_update_aggregator_entry - Update "struct tomoyo_aggregator" list.
|
||||
*
|
||||
* @original_name: The original program's name.
|
||||
* @aggregated_name: The program name to use.
|
||||
@@ -318,7 +312,7 @@ static int tomoyo_update_aggregator_entry(const char *original_name,
|
||||
const char *aggregated_name,
|
||||
const bool is_delete)
|
||||
{
|
||||
struct tomoyo_aggregator_entry e = { };
|
||||
struct tomoyo_aggregator e = { };
|
||||
int error = is_delete ? -ENOENT : -ENOMEM;
|
||||
|
||||
if (!tomoyo_correct_path(original_name) ||
|
||||
@@ -331,7 +325,7 @@ static int tomoyo_update_aggregator_entry(const char *original_name,
|
||||
goto out;
|
||||
error = tomoyo_update_policy(&e.head, sizeof(e), is_delete,
|
||||
&tomoyo_policy_list[TOMOYO_ID_AGGREGATOR],
|
||||
tomoyo_same_aggregator_entry);
|
||||
tomoyo_same_aggregator);
|
||||
out:
|
||||
tomoyo_put_name(e.original_name);
|
||||
tomoyo_put_name(e.aggregated_name);
|
||||
@@ -339,7 +333,7 @@ static int tomoyo_update_aggregator_entry(const char *original_name,
|
||||
}
|
||||
|
||||
/**
|
||||
* tomoyo_write_aggregator_policy - Write "struct tomoyo_aggregator_entry" list.
|
||||
* tomoyo_write_aggregator - Write "struct tomoyo_aggregator" list.
|
||||
*
|
||||
* @data: String to parse.
|
||||
* @is_delete: True if it is a delete request.
|
||||
@@ -348,7 +342,7 @@ static int tomoyo_update_aggregator_entry(const char *original_name,
|
||||
*
|
||||
* Caller holds tomoyo_read_lock().
|
||||
*/
|
||||
int tomoyo_write_aggregator_policy(char *data, const bool is_delete)
|
||||
int tomoyo_write_aggregator(char *data, const bool is_delete)
|
||||
{
|
||||
char *cp = strchr(data, ' ');
|
||||
|
||||
@@ -359,7 +353,7 @@ int tomoyo_write_aggregator_policy(char *data, const bool is_delete)
|
||||
}
|
||||
|
||||
/**
|
||||
* tomoyo_find_or_assign_new_domain - Create a domain.
|
||||
* tomoyo_assign_domain - Create a domain.
|
||||
*
|
||||
* @domainname: The name of domain.
|
||||
* @profile: Profile number to assign if the domain was newly created.
|
||||
@@ -368,9 +362,8 @@ int tomoyo_write_aggregator_policy(char *data, const bool is_delete)
|
||||
*
|
||||
* Caller holds tomoyo_read_lock().
|
||||
*/
|
||||
struct tomoyo_domain_info *tomoyo_find_or_assign_new_domain(const char *
|
||||
domainname,
|
||||
const u8 profile)
|
||||
struct tomoyo_domain_info *tomoyo_assign_domain(const char *domainname,
|
||||
const u8 profile)
|
||||
{
|
||||
struct tomoyo_domain_info *entry;
|
||||
struct tomoyo_domain_info *domain = NULL;
|
||||
@@ -430,10 +423,7 @@ int tomoyo_find_next_domain(struct linux_binprm *bprm)
|
||||
int retval = -ENOMEM;
|
||||
bool need_kfree = false;
|
||||
struct tomoyo_path_info rn = { }; /* real name */
|
||||
struct tomoyo_path_info ln; /* last name */
|
||||
|
||||
ln.name = tomoyo_get_last_name(old_domain);
|
||||
tomoyo_fill_path_info(&ln);
|
||||
mode = tomoyo_init_request_info(&r, NULL, TOMOYO_MAC_FILE_EXECUTE);
|
||||
is_enforce = (mode == TOMOYO_CONFIG_ENFORCING);
|
||||
if (!tmp)
|
||||
@@ -454,7 +444,7 @@ int tomoyo_find_next_domain(struct linux_binprm *bprm)
|
||||
|
||||
/* Check 'aggregator' directive. */
|
||||
{
|
||||
struct tomoyo_aggregator_entry *ptr;
|
||||
struct tomoyo_aggregator *ptr;
|
||||
list_for_each_entry_rcu(ptr, &tomoyo_policy_list
|
||||
[TOMOYO_ID_AGGREGATOR], head.list) {
|
||||
if (ptr->head.is_deleted ||
|
||||
@@ -517,7 +507,7 @@ int tomoyo_find_next_domain(struct linux_binprm *bprm)
|
||||
if (error < 0)
|
||||
goto done;
|
||||
}
|
||||
domain = tomoyo_find_or_assign_new_domain(tmp, old_domain->profile);
|
||||
domain = tomoyo_assign_domain(tmp, old_domain->profile);
|
||||
done:
|
||||
if (domain)
|
||||
goto out;
|
||||
|
||||
@@ -179,7 +179,7 @@ static int tomoyo_audit_path_log(struct tomoyo_request_info *r)
|
||||
return 0;
|
||||
tomoyo_warn_log(r, "%s %s", operation, filename->name);
|
||||
return tomoyo_supervisor(r, "allow_%s %s\n", operation,
|
||||
tomoyo_file_pattern(filename));
|
||||
tomoyo_pattern(filename));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -199,8 +199,8 @@ static int tomoyo_audit_path2_log(struct tomoyo_request_info *r)
|
||||
tomoyo_warn_log(r, "%s %s %s", operation, filename1->name,
|
||||
filename2->name);
|
||||
return tomoyo_supervisor(r, "allow_%s %s %s\n", operation,
|
||||
tomoyo_file_pattern(filename1),
|
||||
tomoyo_file_pattern(filename2));
|
||||
tomoyo_pattern(filename1),
|
||||
tomoyo_pattern(filename2));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -222,8 +222,7 @@ static int tomoyo_audit_mkdev_log(struct tomoyo_request_info *r)
|
||||
tomoyo_warn_log(r, "%s %s 0%o %u %u", operation, filename->name, mode,
|
||||
major, minor);
|
||||
return tomoyo_supervisor(r, "allow_%s %s 0%o %u %u\n", operation,
|
||||
tomoyo_file_pattern(filename), mode, major,
|
||||
minor);
|
||||
tomoyo_pattern(filename), mode, major, minor);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -262,20 +261,20 @@ static int tomoyo_audit_path_number_log(struct tomoyo_request_info *r)
|
||||
radix);
|
||||
tomoyo_warn_log(r, "%s %s %s", operation, filename->name, buffer);
|
||||
return tomoyo_supervisor(r, "allow_%s %s %s\n", operation,
|
||||
tomoyo_file_pattern(filename), buffer);
|
||||
tomoyo_pattern(filename), buffer);
|
||||
}
|
||||
|
||||
static bool tomoyo_same_globally_readable(const struct tomoyo_acl_head *a,
|
||||
const struct tomoyo_acl_head *b)
|
||||
{
|
||||
return container_of(a, struct tomoyo_globally_readable_file_entry,
|
||||
return container_of(a, struct tomoyo_readable_file,
|
||||
head)->filename ==
|
||||
container_of(b, struct tomoyo_globally_readable_file_entry,
|
||||
container_of(b, struct tomoyo_readable_file,
|
||||
head)->filename;
|
||||
}
|
||||
|
||||
/**
|
||||
* tomoyo_update_globally_readable_entry - Update "struct tomoyo_globally_readable_file_entry" list.
|
||||
* tomoyo_update_globally_readable_entry - Update "struct tomoyo_readable_file" list.
|
||||
*
|
||||
* @filename: Filename unconditionally permitted to open() for reading.
|
||||
* @is_delete: True if it is a delete request.
|
||||
@@ -287,7 +286,7 @@ static bool tomoyo_same_globally_readable(const struct tomoyo_acl_head *a,
|
||||
static int tomoyo_update_globally_readable_entry(const char *filename,
|
||||
const bool is_delete)
|
||||
{
|
||||
struct tomoyo_globally_readable_file_entry e = { };
|
||||
struct tomoyo_readable_file e = { };
|
||||
int error;
|
||||
|
||||
if (!tomoyo_correct_word(filename))
|
||||
@@ -315,7 +314,7 @@ static int tomoyo_update_globally_readable_entry(const char *filename,
|
||||
static bool tomoyo_globally_readable_file(const struct tomoyo_path_info *
|
||||
filename)
|
||||
{
|
||||
struct tomoyo_globally_readable_file_entry *ptr;
|
||||
struct tomoyo_readable_file *ptr;
|
||||
bool found = false;
|
||||
|
||||
list_for_each_entry_rcu(ptr, &tomoyo_policy_list
|
||||
@@ -330,7 +329,7 @@ static bool tomoyo_globally_readable_file(const struct tomoyo_path_info *
|
||||
}
|
||||
|
||||
/**
|
||||
* tomoyo_write_globally_readable_policy - Write "struct tomoyo_globally_readable_file_entry" list.
|
||||
* tomoyo_write_globally_readable - Write "struct tomoyo_readable_file" list.
|
||||
*
|
||||
* @data: String to parse.
|
||||
* @is_delete: True if it is a delete request.
|
||||
@@ -339,7 +338,7 @@ static bool tomoyo_globally_readable_file(const struct tomoyo_path_info *
|
||||
*
|
||||
* Caller holds tomoyo_read_lock().
|
||||
*/
|
||||
int tomoyo_write_globally_readable_policy(char *data, const bool is_delete)
|
||||
int tomoyo_write_globally_readable(char *data, const bool is_delete)
|
||||
{
|
||||
return tomoyo_update_globally_readable_entry(data, is_delete);
|
||||
}
|
||||
@@ -347,12 +346,12 @@ int tomoyo_write_globally_readable_policy(char *data, const bool is_delete)
|
||||
static bool tomoyo_same_pattern(const struct tomoyo_acl_head *a,
|
||||
const struct tomoyo_acl_head *b)
|
||||
{
|
||||
return container_of(a, struct tomoyo_pattern_entry, head)->pattern ==
|
||||
container_of(b, struct tomoyo_pattern_entry, head)->pattern;
|
||||
return container_of(a, struct tomoyo_no_pattern, head)->pattern ==
|
||||
container_of(b, struct tomoyo_no_pattern, head)->pattern;
|
||||
}
|
||||
|
||||
/**
|
||||
* tomoyo_update_file_pattern_entry - Update "struct tomoyo_pattern_entry" list.
|
||||
* tomoyo_update_file_pattern_entry - Update "struct tomoyo_no_pattern" list.
|
||||
*
|
||||
* @pattern: Pathname pattern.
|
||||
* @is_delete: True if it is a delete request.
|
||||
@@ -364,7 +363,7 @@ static bool tomoyo_same_pattern(const struct tomoyo_acl_head *a,
|
||||
static int tomoyo_update_file_pattern_entry(const char *pattern,
|
||||
const bool is_delete)
|
||||
{
|
||||
struct tomoyo_pattern_entry e = { };
|
||||
struct tomoyo_no_pattern e = { };
|
||||
int error;
|
||||
|
||||
if (!tomoyo_correct_word(pattern))
|
||||
@@ -380,7 +379,7 @@ static int tomoyo_update_file_pattern_entry(const char *pattern,
|
||||
}
|
||||
|
||||
/**
|
||||
* tomoyo_file_pattern - Get patterned pathname.
|
||||
* tomoyo_pattern - Get patterned pathname.
|
||||
*
|
||||
* @filename: The filename to find patterned pathname.
|
||||
*
|
||||
@@ -388,9 +387,9 @@ static int tomoyo_update_file_pattern_entry(const char *pattern,
|
||||
*
|
||||
* Caller holds tomoyo_read_lock().
|
||||
*/
|
||||
const char *tomoyo_file_pattern(const struct tomoyo_path_info *filename)
|
||||
const char *tomoyo_pattern(const struct tomoyo_path_info *filename)
|
||||
{
|
||||
struct tomoyo_pattern_entry *ptr;
|
||||
struct tomoyo_no_pattern *ptr;
|
||||
const struct tomoyo_path_info *pattern = NULL;
|
||||
|
||||
list_for_each_entry_rcu(ptr, &tomoyo_policy_list[TOMOYO_ID_PATTERN],
|
||||
@@ -413,7 +412,7 @@ const char *tomoyo_file_pattern(const struct tomoyo_path_info *filename)
|
||||
}
|
||||
|
||||
/**
|
||||
* tomoyo_write_pattern_policy - Write "struct tomoyo_pattern_entry" list.
|
||||
* tomoyo_write_pattern - Write "struct tomoyo_no_pattern" list.
|
||||
*
|
||||
* @data: String to parse.
|
||||
* @is_delete: True if it is a delete request.
|
||||
@@ -422,7 +421,7 @@ const char *tomoyo_file_pattern(const struct tomoyo_path_info *filename)
|
||||
*
|
||||
* Caller holds tomoyo_read_lock().
|
||||
*/
|
||||
int tomoyo_write_pattern_policy(char *data, const bool is_delete)
|
||||
int tomoyo_write_pattern(char *data, const bool is_delete)
|
||||
{
|
||||
return tomoyo_update_file_pattern_entry(data, is_delete);
|
||||
}
|
||||
@@ -430,13 +429,13 @@ int tomoyo_write_pattern_policy(char *data, const bool is_delete)
|
||||
static bool tomoyo_same_no_rewrite(const struct tomoyo_acl_head *a,
|
||||
const struct tomoyo_acl_head *b)
|
||||
{
|
||||
return container_of(a, struct tomoyo_no_rewrite_entry, head)->pattern
|
||||
== container_of(b, struct tomoyo_no_rewrite_entry, head)
|
||||
return container_of(a, struct tomoyo_no_rewrite, head)->pattern
|
||||
== container_of(b, struct tomoyo_no_rewrite, head)
|
||||
->pattern;
|
||||
}
|
||||
|
||||
/**
|
||||
* tomoyo_update_no_rewrite_entry - Update "struct tomoyo_no_rewrite_entry" list.
|
||||
* tomoyo_update_no_rewrite_entry - Update "struct tomoyo_no_rewrite" list.
|
||||
*
|
||||
* @pattern: Pathname pattern that are not rewritable by default.
|
||||
* @is_delete: True if it is a delete request.
|
||||
@@ -448,7 +447,7 @@ static bool tomoyo_same_no_rewrite(const struct tomoyo_acl_head *a,
|
||||
static int tomoyo_update_no_rewrite_entry(const char *pattern,
|
||||
const bool is_delete)
|
||||
{
|
||||
struct tomoyo_no_rewrite_entry e = { };
|
||||
struct tomoyo_no_rewrite e = { };
|
||||
int error;
|
||||
|
||||
if (!tomoyo_correct_word(pattern))
|
||||
@@ -475,7 +474,7 @@ static int tomoyo_update_no_rewrite_entry(const char *pattern,
|
||||
*/
|
||||
static bool tomoyo_no_rewrite_file(const struct tomoyo_path_info *filename)
|
||||
{
|
||||
struct tomoyo_no_rewrite_entry *ptr;
|
||||
struct tomoyo_no_rewrite *ptr;
|
||||
bool found = false;
|
||||
|
||||
list_for_each_entry_rcu(ptr, &tomoyo_policy_list[TOMOYO_ID_NO_REWRITE],
|
||||
@@ -491,7 +490,7 @@ static bool tomoyo_no_rewrite_file(const struct tomoyo_path_info *filename)
|
||||
}
|
||||
|
||||
/**
|
||||
* tomoyo_write_no_rewrite_policy - Write "struct tomoyo_no_rewrite_entry" list.
|
||||
* tomoyo_write_no_rewrite - Write "struct tomoyo_no_rewrite" list.
|
||||
*
|
||||
* @data: String to parse.
|
||||
* @is_delete: True if it is a delete request.
|
||||
@@ -500,7 +499,7 @@ static bool tomoyo_no_rewrite_file(const struct tomoyo_path_info *filename)
|
||||
*
|
||||
* Caller holds tomoyo_read_lock().
|
||||
*/
|
||||
int tomoyo_write_no_rewrite_policy(char *data, const bool is_delete)
|
||||
int tomoyo_write_no_rewrite(char *data, const bool is_delete)
|
||||
{
|
||||
return tomoyo_update_no_rewrite_entry(data, is_delete);
|
||||
}
|
||||
@@ -1121,7 +1120,7 @@ int tomoyo_path2_perm(const u8 operation, struct path *path1,
|
||||
}
|
||||
|
||||
/**
|
||||
* tomoyo_write_file_policy - Update file related list.
|
||||
* tomoyo_write_file - Update file related list.
|
||||
*
|
||||
* @data: String to parse.
|
||||
* @domain: Pointer to "struct tomoyo_domain_info".
|
||||
@@ -1131,8 +1130,8 @@ int tomoyo_path2_perm(const u8 operation, struct path *path1,
|
||||
*
|
||||
* Caller holds tomoyo_read_lock().
|
||||
*/
|
||||
int tomoyo_write_file_policy(char *data, struct tomoyo_domain_info *domain,
|
||||
const bool is_delete)
|
||||
int tomoyo_write_file(char *data, struct tomoyo_domain_info *domain,
|
||||
const bool is_delete)
|
||||
{
|
||||
char *w[5];
|
||||
u8 type;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
struct tomoyo_gc_entry {
|
||||
struct tomoyo_gc {
|
||||
struct list_head list;
|
||||
int type;
|
||||
struct list_head *element;
|
||||
@@ -22,7 +22,7 @@ static DEFINE_MUTEX(tomoyo_gc_mutex);
|
||||
/* Caller holds tomoyo_policy_lock mutex. */
|
||||
static bool tomoyo_add_to_gc(const int type, struct list_head *element)
|
||||
{
|
||||
struct tomoyo_gc_entry *entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
|
||||
struct tomoyo_gc *entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
|
||||
if (!entry)
|
||||
return false;
|
||||
entry->type = type;
|
||||
@@ -34,21 +34,21 @@ static bool tomoyo_add_to_gc(const int type, struct list_head *element)
|
||||
|
||||
static void tomoyo_del_allow_read(struct list_head *element)
|
||||
{
|
||||
struct tomoyo_globally_readable_file_entry *ptr =
|
||||
struct tomoyo_readable_file *ptr =
|
||||
container_of(element, typeof(*ptr), head.list);
|
||||
tomoyo_put_name(ptr->filename);
|
||||
}
|
||||
|
||||
static void tomoyo_del_file_pattern(struct list_head *element)
|
||||
{
|
||||
struct tomoyo_pattern_entry *ptr =
|
||||
struct tomoyo_no_pattern *ptr =
|
||||
container_of(element, typeof(*ptr), head.list);
|
||||
tomoyo_put_name(ptr->pattern);
|
||||
}
|
||||
|
||||
static void tomoyo_del_no_rewrite(struct list_head *element)
|
||||
{
|
||||
struct tomoyo_no_rewrite_entry *ptr =
|
||||
struct tomoyo_no_rewrite *ptr =
|
||||
container_of(element, typeof(*ptr), head.list);
|
||||
tomoyo_put_name(ptr->pattern);
|
||||
}
|
||||
@@ -63,7 +63,7 @@ static void tomoyo_del_transition_control(struct list_head *element)
|
||||
|
||||
static void tomoyo_del_aggregator(struct list_head *element)
|
||||
{
|
||||
struct tomoyo_aggregator_entry *ptr =
|
||||
struct tomoyo_aggregator *ptr =
|
||||
container_of(element, typeof(*ptr), head.list);
|
||||
tomoyo_put_name(ptr->original_name);
|
||||
tomoyo_put_name(ptr->aggregated_name);
|
||||
@@ -71,7 +71,7 @@ static void tomoyo_del_aggregator(struct list_head *element)
|
||||
|
||||
static void tomoyo_del_manager(struct list_head *element)
|
||||
{
|
||||
struct tomoyo_policy_manager_entry *ptr =
|
||||
struct tomoyo_manager *ptr =
|
||||
container_of(element, typeof(*ptr), head.list);
|
||||
tomoyo_put_name(ptr->manager);
|
||||
}
|
||||
@@ -168,7 +168,7 @@ static bool tomoyo_del_domain(struct list_head *element)
|
||||
|
||||
static void tomoyo_del_name(struct list_head *element)
|
||||
{
|
||||
const struct tomoyo_name_entry *ptr =
|
||||
const struct tomoyo_name *ptr =
|
||||
container_of(element, typeof(*ptr), list);
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ static void tomoyo_collect_entry(void)
|
||||
}
|
||||
}
|
||||
for (i = 0; i < TOMOYO_MAX_HASH; i++) {
|
||||
struct tomoyo_name_entry *ptr;
|
||||
struct tomoyo_name *ptr;
|
||||
list_for_each_entry_rcu(ptr, &tomoyo_name_list[i], list) {
|
||||
if (atomic_read(&ptr->users))
|
||||
continue;
|
||||
@@ -278,8 +278,8 @@ static void tomoyo_collect_entry(void)
|
||||
|
||||
static void tomoyo_kfree_entry(void)
|
||||
{
|
||||
struct tomoyo_gc_entry *p;
|
||||
struct tomoyo_gc_entry *tmp;
|
||||
struct tomoyo_gc *p;
|
||||
struct tomoyo_gc *tmp;
|
||||
|
||||
list_for_each_entry_safe(p, tmp, &tomoyo_gc_queue, list) {
|
||||
struct list_head *element = p->element;
|
||||
|
||||
@@ -150,7 +150,7 @@ struct list_head tomoyo_name_list[TOMOYO_MAX_HASH];
|
||||
*/
|
||||
const struct tomoyo_path_info *tomoyo_get_name(const char *name)
|
||||
{
|
||||
struct tomoyo_name_entry *ptr;
|
||||
struct tomoyo_name *ptr;
|
||||
unsigned int hash;
|
||||
int len;
|
||||
int allocated_len;
|
||||
|
||||
@@ -55,8 +55,8 @@ static int tomoyo_audit_mount_log(struct tomoyo_request_info *r)
|
||||
flags);
|
||||
return tomoyo_supervisor(r,
|
||||
TOMOYO_KEYWORD_ALLOW_MOUNT "%s %s %s 0x%lX\n",
|
||||
tomoyo_file_pattern(r->param.mount.dev),
|
||||
tomoyo_file_pattern(r->param.mount.dir), type,
|
||||
tomoyo_pattern(r->param.mount.dev),
|
||||
tomoyo_pattern(r->param.mount.dir), type,
|
||||
flags);
|
||||
}
|
||||
|
||||
@@ -250,7 +250,7 @@ static bool tomoyo_same_mount_acl(const struct tomoyo_acl_info *a,
|
||||
}
|
||||
|
||||
/**
|
||||
* tomoyo_write_mount_policy - Write "struct tomoyo_mount_acl" list.
|
||||
* tomoyo_write_mount - Write "struct tomoyo_mount_acl" list.
|
||||
*
|
||||
* @data: String to parse.
|
||||
* @domain: Pointer to "struct tomoyo_domain_info".
|
||||
@@ -260,8 +260,8 @@ static bool tomoyo_same_mount_acl(const struct tomoyo_acl_info *a,
|
||||
*
|
||||
* Caller holds tomoyo_read_lock().
|
||||
*/
|
||||
int tomoyo_write_mount_policy(char *data, struct tomoyo_domain_info *domain,
|
||||
const bool is_delete)
|
||||
int tomoyo_write_mount(char *data, struct tomoyo_domain_info *domain,
|
||||
const bool is_delete)
|
||||
{
|
||||
struct tomoyo_mount_acl e = { .head.type = TOMOYO_TYPE_MOUNT_ACL };
|
||||
int error = is_delete ? -ENOENT : -ENOMEM;
|
||||
|
||||
@@ -26,7 +26,7 @@ bool tomoyo_policy_loaded;
|
||||
* The @src is updated to point the first character after the value
|
||||
* on success.
|
||||
*/
|
||||
u8 tomoyo_parse_ulong(unsigned long *result, char **str)
|
||||
static u8 tomoyo_parse_ulong(unsigned long *result, char **str)
|
||||
{
|
||||
const char *cp = *str;
|
||||
char *ep;
|
||||
|
||||
Reference in New Issue
Block a user