diff options
author | Eric Paris <eparis@redhat.com> | 2008-07-03 19:47:13 -0400 |
---|---|---|
committer | James Morris <jmorris@namei.org> | 2008-07-14 01:02:05 -0400 |
commit | 2069f457848f846cb31149c9aa29b330a6b66d1b (patch) | |
tree | 199e7bb15e7d7b5cf008cd6fdb6cefc0d6af7f13 /include/linux/security.h | |
parent | 811f3799279e567aa354c649ce22688d949ac7a9 (diff) |
LSM/SELinux: show LSM mount options in /proc/mounts
This patch causes SELinux mount options to show up in /proc/mounts. As
with other code in the area seq_put errors are ignored. Other LSM's
will not have their mount options displayed until they fill in their own
security_sb_show_options() function.
Signed-off-by: Eric Paris <eparis@redhat.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'include/linux/security.h')
-rw-r--r-- | include/linux/security.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/security.h b/include/linux/security.h index 62bd80cb7f87..c8ad8ec684b4 100644 --- a/include/linux/security.h +++ b/include/linux/security.h | |||
@@ -80,6 +80,7 @@ struct xfrm_selector; | |||
80 | struct xfrm_policy; | 80 | struct xfrm_policy; |
81 | struct xfrm_state; | 81 | struct xfrm_state; |
82 | struct xfrm_user_sec_ctx; | 82 | struct xfrm_user_sec_ctx; |
83 | struct seq_file; | ||
83 | 84 | ||
84 | extern int cap_netlink_send(struct sock *sk, struct sk_buff *skb); | 85 | extern int cap_netlink_send(struct sock *sk, struct sk_buff *skb); |
85 | extern int cap_netlink_recv(struct sk_buff *skb, int cap); | 86 | extern int cap_netlink_recv(struct sk_buff *skb, int cap); |
@@ -1331,6 +1332,7 @@ struct security_operations { | |||
1331 | void (*sb_free_security) (struct super_block *sb); | 1332 | void (*sb_free_security) (struct super_block *sb); |
1332 | int (*sb_copy_data) (char *orig, char *copy); | 1333 | int (*sb_copy_data) (char *orig, char *copy); |
1333 | int (*sb_kern_mount) (struct super_block *sb, void *data); | 1334 | int (*sb_kern_mount) (struct super_block *sb, void *data); |
1335 | int (*sb_show_options) (struct seq_file *m, struct super_block *sb); | ||
1334 | int (*sb_statfs) (struct dentry *dentry); | 1336 | int (*sb_statfs) (struct dentry *dentry); |
1335 | int (*sb_mount) (char *dev_name, struct path *path, | 1337 | int (*sb_mount) (char *dev_name, struct path *path, |
1336 | char *type, unsigned long flags, void *data); | 1338 | char *type, unsigned long flags, void *data); |
@@ -1610,6 +1612,7 @@ int security_sb_alloc(struct super_block *sb); | |||
1610 | void security_sb_free(struct super_block *sb); | 1612 | void security_sb_free(struct super_block *sb); |
1611 | int security_sb_copy_data(char *orig, char *copy); | 1613 | int security_sb_copy_data(char *orig, char *copy); |
1612 | int security_sb_kern_mount(struct super_block *sb, void *data); | 1614 | int security_sb_kern_mount(struct super_block *sb, void *data); |
1615 | int security_sb_show_options(struct seq_file *m, struct super_block *sb); | ||
1613 | int security_sb_statfs(struct dentry *dentry); | 1616 | int security_sb_statfs(struct dentry *dentry); |
1614 | int security_sb_mount(char *dev_name, struct path *path, | 1617 | int security_sb_mount(char *dev_name, struct path *path, |
1615 | char *type, unsigned long flags, void *data); | 1618 | char *type, unsigned long flags, void *data); |
@@ -1887,6 +1890,12 @@ static inline int security_sb_kern_mount(struct super_block *sb, void *data) | |||
1887 | return 0; | 1890 | return 0; |
1888 | } | 1891 | } |
1889 | 1892 | ||
1893 | static inline int security_sb_show_options(struct seq_file *m, | ||
1894 | struct super_block *sb) | ||
1895 | { | ||
1896 | return 0; | ||
1897 | } | ||
1898 | |||
1890 | static inline int security_sb_statfs(struct dentry *dentry) | 1899 | static inline int security_sb_statfs(struct dentry *dentry) |
1891 | { | 1900 | { |
1892 | return 0; | 1901 | return 0; |