diff options
Diffstat (limited to 'security/security.c')
| -rw-r--r-- | security/security.c | 62 |
1 files changed, 60 insertions, 2 deletions
diff --git a/security/security.c b/security/security.c index dc7674fbfc7a..c4c673240c1c 100644 --- a/security/security.c +++ b/security/security.c | |||
| @@ -124,9 +124,9 @@ int register_security(struct security_operations *ops) | |||
| 124 | 124 | ||
| 125 | /* Security operations */ | 125 | /* Security operations */ |
| 126 | 126 | ||
| 127 | int security_ptrace_may_access(struct task_struct *child, unsigned int mode) | 127 | int security_ptrace_access_check(struct task_struct *child, unsigned int mode) |
| 128 | { | 128 | { |
| 129 | return security_ops->ptrace_may_access(child, mode); | 129 | return security_ops->ptrace_access_check(child, mode); |
| 130 | } | 130 | } |
| 131 | 131 | ||
| 132 | int security_ptrace_traceme(struct task_struct *parent) | 132 | int security_ptrace_traceme(struct task_struct *parent) |
| @@ -684,6 +684,11 @@ int security_task_create(unsigned long clone_flags) | |||
| 684 | return security_ops->task_create(clone_flags); | 684 | return security_ops->task_create(clone_flags); |
| 685 | } | 685 | } |
| 686 | 686 | ||
| 687 | int security_cred_alloc_blank(struct cred *cred, gfp_t gfp) | ||
| 688 | { | ||
| 689 | return security_ops->cred_alloc_blank(cred, gfp); | ||
| 690 | } | ||
| 691 | |||
| 687 | void security_cred_free(struct cred *cred) | 692 | void security_cred_free(struct cred *cred) |
| 688 | { | 693 | { |
| 689 | security_ops->cred_free(cred); | 694 | security_ops->cred_free(cred); |
| @@ -699,6 +704,11 @@ void security_commit_creds(struct cred *new, const struct cred *old) | |||
| 699 | security_ops->cred_commit(new, old); | 704 | security_ops->cred_commit(new, old); |
| 700 | } | 705 | } |
| 701 | 706 | ||
| 707 | void security_transfer_creds(struct cred *new, const struct cred *old) | ||
| 708 | { | ||
| 709 | security_ops->cred_transfer(new, old); | ||
| 710 | } | ||
| 711 | |||
| 702 | int security_kernel_act_as(struct cred *new, u32 secid) | 712 | int security_kernel_act_as(struct cred *new, u32 secid) |
| 703 | { | 713 | { |
| 704 | return security_ops->kernel_act_as(new, secid); | 714 | return security_ops->kernel_act_as(new, secid); |
| @@ -709,6 +719,11 @@ int security_kernel_create_files_as(struct cred *new, struct inode *inode) | |||
| 709 | return security_ops->kernel_create_files_as(new, inode); | 719 | return security_ops->kernel_create_files_as(new, inode); |
| 710 | } | 720 | } |
| 711 | 721 | ||
| 722 | int security_kernel_module_request(void) | ||
| 723 | { | ||
| 724 | return security_ops->kernel_module_request(); | ||
| 725 | } | ||
| 726 | |||
| 712 | int security_task_setuid(uid_t id0, uid_t id1, uid_t id2, int flags) | 727 | int security_task_setuid(uid_t id0, uid_t id1, uid_t id2, int flags) |
| 713 | { | 728 | { |
| 714 | return security_ops->task_setuid(id0, id1, id2, flags); | 729 | return security_ops->task_setuid(id0, id1, id2, flags); |
| @@ -959,6 +974,24 @@ void security_release_secctx(char *secdata, u32 seclen) | |||
| 959 | } | 974 | } |
| 960 | EXPORT_SYMBOL(security_release_secctx); | 975 | EXPORT_SYMBOL(security_release_secctx); |
| 961 | 976 | ||
| 977 | int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen) | ||
| 978 | { | ||
| 979 | return security_ops->inode_notifysecctx(inode, ctx, ctxlen); | ||
| 980 | } | ||
| 981 | EXPORT_SYMBOL(security_inode_notifysecctx); | ||
| 982 | |||
| 983 | int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen) | ||
| 984 | { | ||
| 985 | return security_ops->inode_setsecctx(dentry, ctx, ctxlen); | ||
| 986 | } | ||
| 987 | EXPORT_SYMBOL(security_inode_setsecctx); | ||
| 988 | |||
| 989 | int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen) | ||
| 990 | { | ||
| 991 | return security_ops->inode_getsecctx(inode, ctx, ctxlen); | ||
| 992 | } | ||
| 993 | EXPORT_SYMBOL(security_inode_getsecctx); | ||
| 994 | |||
| 962 | #ifdef CONFIG_SECURITY_NETWORK | 995 | #ifdef CONFIG_SECURITY_NETWORK |
| 963 | 996 | ||
| 964 | int security_unix_stream_connect(struct socket *sock, struct socket *other, | 997 | int security_unix_stream_connect(struct socket *sock, struct socket *other, |
| @@ -1112,6 +1145,24 @@ void security_inet_conn_established(struct sock *sk, | |||
| 1112 | security_ops->inet_conn_established(sk, skb); | 1145 | security_ops->inet_conn_established(sk, skb); |
| 1113 | } | 1146 | } |
| 1114 | 1147 | ||
| 1148 | int security_tun_dev_create(void) | ||
| 1149 | { | ||
| 1150 | return security_ops->tun_dev_create(); | ||
| 1151 | } | ||
| 1152 | EXPORT_SYMBOL(security_tun_dev_create); | ||
| 1153 | |||
| 1154 | void security_tun_dev_post_create(struct sock *sk) | ||
| 1155 | { | ||
| 1156 | return security_ops->tun_dev_post_create(sk); | ||
| 1157 | } | ||
| 1158 | EXPORT_SYMBOL(security_tun_dev_post_create); | ||
| 1159 | |||
| 1160 | int security_tun_dev_attach(struct sock *sk) | ||
| 1161 | { | ||
| 1162 | return security_ops->tun_dev_attach(sk); | ||
| 1163 | } | ||
| 1164 | EXPORT_SYMBOL(security_tun_dev_attach); | ||
| 1165 | |||
| 1115 | #endif /* CONFIG_SECURITY_NETWORK */ | 1166 | #endif /* CONFIG_SECURITY_NETWORK */ |
| 1116 | 1167 | ||
| 1117 | #ifdef CONFIG_SECURITY_NETWORK_XFRM | 1168 | #ifdef CONFIG_SECURITY_NETWORK_XFRM |
| @@ -1218,6 +1269,13 @@ int security_key_getsecurity(struct key *key, char **_buffer) | |||
| 1218 | return security_ops->key_getsecurity(key, _buffer); | 1269 | return security_ops->key_getsecurity(key, _buffer); |
| 1219 | } | 1270 | } |
| 1220 | 1271 | ||
| 1272 | int security_key_session_to_parent(const struct cred *cred, | ||
| 1273 | const struct cred *parent_cred, | ||
| 1274 | struct key *key) | ||
| 1275 | { | ||
| 1276 | return security_ops->key_session_to_parent(cred, parent_cred, key); | ||
| 1277 | } | ||
| 1278 | |||
| 1221 | #endif /* CONFIG_KEYS */ | 1279 | #endif /* CONFIG_KEYS */ |
| 1222 | 1280 | ||
| 1223 | #ifdef CONFIG_AUDIT | 1281 | #ifdef CONFIG_AUDIT |
