aboutsummaryrefslogtreecommitdiffstats
path: root/security/tomoyo/common.h
diff options
context:
space:
mode:
authorTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>2010-06-20 20:58:53 -0400
committerJames Morris <jmorris@namei.org>2010-08-02 01:34:42 -0400
commit0617c7ff34dc9b1d641640c3953274bb2dbe21a6 (patch)
tree6be51af32ad65380aff9b7fa385f65ef15b3d53b /security/tomoyo/common.h
parent7c2ea22e3c5463627ca98924cd65cb9e480dc29c (diff)
TOMOYO: Remove alias keyword.
Some programs behave differently depending on argv[0] passed to execve(). TOMOYO has "alias" keyword in order to allow administrators to define different domains if requested pathname passed to execve() is a symlink. But "alias" keyword is incomplete because this keyword assumes that requested pathname and argv[0] are identical. Thus, remove "alias" keyword (by this patch) and add syntax for checking argv[0] (by future patches). Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'security/tomoyo/common.h')
-rw-r--r--security/tomoyo/common.h30
1 files changed, 5 insertions, 25 deletions
diff --git a/security/tomoyo/common.h b/security/tomoyo/common.h
index ec3ed488ee30..12b0c5c46c8d 100644
--- a/security/tomoyo/common.h
+++ b/security/tomoyo/common.h
@@ -53,7 +53,6 @@ enum tomoyo_policy_id {
53 TOMOYO_ID_DOMAIN_INITIALIZER, 53 TOMOYO_ID_DOMAIN_INITIALIZER,
54 TOMOYO_ID_DOMAIN_KEEPER, 54 TOMOYO_ID_DOMAIN_KEEPER,
55 TOMOYO_ID_AGGREGATOR, 55 TOMOYO_ID_AGGREGATOR,
56 TOMOYO_ID_ALIAS,
57 TOMOYO_ID_GLOBALLY_READABLE, 56 TOMOYO_ID_GLOBALLY_READABLE,
58 TOMOYO_ID_PATTERN, 57 TOMOYO_ID_PATTERN,
59 TOMOYO_ID_NO_REWRITE, 58 TOMOYO_ID_NO_REWRITE,
@@ -72,7 +71,6 @@ enum tomoyo_group_id {
72 71
73/* Keywords for ACLs. */ 72/* Keywords for ACLs. */
74#define TOMOYO_KEYWORD_AGGREGATOR "aggregator " 73#define TOMOYO_KEYWORD_AGGREGATOR "aggregator "
75#define TOMOYO_KEYWORD_ALIAS "alias "
76#define TOMOYO_KEYWORD_ALLOW_MOUNT "allow_mount " 74#define TOMOYO_KEYWORD_ALLOW_MOUNT "allow_mount "
77#define TOMOYO_KEYWORD_ALLOW_READ "allow_read " 75#define TOMOYO_KEYWORD_ALLOW_READ "allow_read "
78#define TOMOYO_KEYWORD_DELETE "delete " 76#define TOMOYO_KEYWORD_DELETE "delete "
@@ -683,20 +681,6 @@ struct tomoyo_aggregator_entry {
683}; 681};
684 682
685/* 683/*
686 * tomoyo_alias_entry is a structure which is used for holding "alias" entries.
687 * It has following fields.
688 *
689 * (1) "head" is "struct tomoyo_acl_head".
690 * (2) "original_name" which is a dereferenced pathname.
691 * (3) "aliased_name" which is a symlink's pathname.
692 */
693struct tomoyo_alias_entry {
694 struct tomoyo_acl_head head;
695 const struct tomoyo_path_info *original_name;
696 const struct tomoyo_path_info *aliased_name;
697};
698
699/*
700 * tomoyo_policy_manager_entry is a structure which is used for holding list of 684 * tomoyo_policy_manager_entry is a structure which is used for holding list of
701 * domainnames or programs which are permitted to modify configuration via 685 * domainnames or programs which are permitted to modify configuration via
702 * /sys/kernel/security/tomoyo/ interface. 686 * /sys/kernel/security/tomoyo/ interface.
@@ -809,8 +793,6 @@ int tomoyo_mount_permission(char *dev_name, struct path *path, char *type,
809 unsigned long flags, void *data_page); 793 unsigned long flags, void *data_page);
810/* Create "aggregator" entry in exception policy. */ 794/* Create "aggregator" entry in exception policy. */
811int tomoyo_write_aggregator_policy(char *data, const bool is_delete); 795int tomoyo_write_aggregator_policy(char *data, const bool is_delete);
812/* Create "alias" entry in exception policy. */
813int tomoyo_write_alias_policy(char *data, const bool is_delete);
814/* 796/*
815 * Create "initialize_domain" and "no_initialize_domain" entry 797 * Create "initialize_domain" and "no_initialize_domain" entry
816 * in exception policy. 798 * in exception policy.
@@ -868,16 +850,14 @@ void tomoyo_put_number_union(struct tomoyo_number_union *ptr);
868char *tomoyo_encode(const char *str); 850char *tomoyo_encode(const char *str);
869 851
870/* 852/*
871 * Returns realpath(3) of the given pathname but ignores chroot'ed root. 853 * Returns realpath(3) of the given pathname except that
872 * These functions use kzalloc(), so the caller must call kfree() 854 * ignores chroot'ed root and does not follow the final symlink.
873 * if these functions didn't return NULL.
874 */ 855 */
875char *tomoyo_realpath(const char *pathname); 856char *tomoyo_realpath_nofollow(const char *pathname);
876/* 857/*
877 * Same with tomoyo_realpath() except that it doesn't follow the final symlink. 858 * Returns realpath(3) of the given pathname except that
859 * ignores chroot'ed root and the pathname is already solved.
878 */ 860 */
879char *tomoyo_realpath_nofollow(const char *pathname);
880/* Same with tomoyo_realpath() except that the pathname is already solved. */
881char *tomoyo_realpath_from_path(struct path *path); 861char *tomoyo_realpath_from_path(struct path *path);
882/* Get patterned pathname. */ 862/* Get patterned pathname. */
883const char *tomoyo_file_pattern(const struct tomoyo_path_info *filename); 863const char *tomoyo_file_pattern(const struct tomoyo_path_info *filename);