diff options
author | David Howells <dhowells@redhat.com> | 2008-01-15 18:47:35 -0500 |
---|---|---|
committer | James Morris <jmorris@namei.org> | 2008-01-24 19:29:53 -0500 |
commit | 63cb34492351078479b2d4bae6a881806a396286 (patch) | |
tree | d33ab15eda40c5195c4a723d9e49591a9b4950f9 /security | |
parent | c43e259cc756ece387faae849af0058b56d78466 (diff) |
security: add a secctx_to_secid() hook
Add a secctx_to_secid() LSM hook to go along with the existing
secid_to_secctx() LSM hook. This patch also includes the SELinux
implementation for this hook.
Signed-off-by: Paul Moore <paul.moore@hp.com>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'security')
-rw-r--r-- | security/dummy.c | 6 | ||||
-rw-r--r-- | security/security.c | 6 | ||||
-rw-r--r-- | security/selinux/hooks.c | 6 |
3 files changed, 18 insertions, 0 deletions
diff --git a/security/dummy.c b/security/dummy.c index 8e34e03415f8..48d4b0a52737 100644 --- a/security/dummy.c +++ b/security/dummy.c | |||
@@ -946,6 +946,11 @@ static int dummy_secid_to_secctx(u32 secid, char **secdata, u32 *seclen) | |||
946 | return -EOPNOTSUPP; | 946 | return -EOPNOTSUPP; |
947 | } | 947 | } |
948 | 948 | ||
949 | static int dummy_secctx_to_secid(char *secdata, u32 seclen, u32 *secid) | ||
950 | { | ||
951 | return -EOPNOTSUPP; | ||
952 | } | ||
953 | |||
949 | static void dummy_release_secctx(char *secdata, u32 seclen) | 954 | static void dummy_release_secctx(char *secdata, u32 seclen) |
950 | { | 955 | { |
951 | } | 956 | } |
@@ -1106,6 +1111,7 @@ void security_fixup_ops (struct security_operations *ops) | |||
1106 | set_to_dummy_if_null(ops, getprocattr); | 1111 | set_to_dummy_if_null(ops, getprocattr); |
1107 | set_to_dummy_if_null(ops, setprocattr); | 1112 | set_to_dummy_if_null(ops, setprocattr); |
1108 | set_to_dummy_if_null(ops, secid_to_secctx); | 1113 | set_to_dummy_if_null(ops, secid_to_secctx); |
1114 | set_to_dummy_if_null(ops, secctx_to_secid); | ||
1109 | set_to_dummy_if_null(ops, release_secctx); | 1115 | set_to_dummy_if_null(ops, release_secctx); |
1110 | #ifdef CONFIG_SECURITY_NETWORK | 1116 | #ifdef CONFIG_SECURITY_NETWORK |
1111 | set_to_dummy_if_null(ops, unix_stream_connect); | 1117 | set_to_dummy_if_null(ops, unix_stream_connect); |
diff --git a/security/security.c b/security/security.c index 5068808343d0..ca475ca206e4 100644 --- a/security/security.c +++ b/security/security.c | |||
@@ -831,6 +831,12 @@ int security_secid_to_secctx(u32 secid, char **secdata, u32 *seclen) | |||
831 | } | 831 | } |
832 | EXPORT_SYMBOL(security_secid_to_secctx); | 832 | EXPORT_SYMBOL(security_secid_to_secctx); |
833 | 833 | ||
834 | int security_secctx_to_secid(char *secdata, u32 seclen, u32 *secid) | ||
835 | { | ||
836 | return security_ops->secctx_to_secid(secdata, seclen, secid); | ||
837 | } | ||
838 | EXPORT_SYMBOL(security_secctx_to_secid); | ||
839 | |||
834 | void security_release_secctx(char *secdata, u32 seclen) | 840 | void security_release_secctx(char *secdata, u32 seclen) |
835 | { | 841 | { |
836 | return security_ops->release_secctx(secdata, seclen); | 842 | return security_ops->release_secctx(secdata, seclen); |
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 233c8b97462f..0396354fff95 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c | |||
@@ -4947,6 +4947,11 @@ static int selinux_secid_to_secctx(u32 secid, char **secdata, u32 *seclen) | |||
4947 | return security_sid_to_context(secid, secdata, seclen); | 4947 | return security_sid_to_context(secid, secdata, seclen); |
4948 | } | 4948 | } |
4949 | 4949 | ||
4950 | static int selinux_secctx_to_secid(char *secdata, u32 seclen, u32 *secid) | ||
4951 | { | ||
4952 | return security_context_to_sid(secdata, seclen, secid); | ||
4953 | } | ||
4954 | |||
4950 | static void selinux_release_secctx(char *secdata, u32 seclen) | 4955 | static void selinux_release_secctx(char *secdata, u32 seclen) |
4951 | { | 4956 | { |
4952 | kfree(secdata); | 4957 | kfree(secdata); |
@@ -5138,6 +5143,7 @@ static struct security_operations selinux_ops = { | |||
5138 | .setprocattr = selinux_setprocattr, | 5143 | .setprocattr = selinux_setprocattr, |
5139 | 5144 | ||
5140 | .secid_to_secctx = selinux_secid_to_secctx, | 5145 | .secid_to_secctx = selinux_secid_to_secctx, |
5146 | .secctx_to_secid = selinux_secctx_to_secid, | ||
5141 | .release_secctx = selinux_release_secctx, | 5147 | .release_secctx = selinux_release_secctx, |
5142 | 5148 | ||
5143 | .unix_stream_connect = selinux_socket_unix_stream_connect, | 5149 | .unix_stream_connect = selinux_socket_unix_stream_connect, |