diff options
Diffstat (limited to 'security/keys/internal.h')
-rw-r--r-- | security/keys/internal.h | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/security/keys/internal.h b/security/keys/internal.h index d1586c629788..81932abefe7b 100644 --- a/security/keys/internal.h +++ b/security/keys/internal.h | |||
@@ -12,6 +12,7 @@ | |||
12 | #ifndef _INTERNAL_H | 12 | #ifndef _INTERNAL_H |
13 | #define _INTERNAL_H | 13 | #define _INTERNAL_H |
14 | 14 | ||
15 | #include <linux/sched.h> | ||
15 | #include <linux/key-type.h> | 16 | #include <linux/key-type.h> |
16 | 17 | ||
17 | static inline __attribute__((format(printf, 1, 2))) | 18 | static inline __attribute__((format(printf, 1, 2))) |
@@ -25,7 +26,7 @@ void no_printk(const char *fmt, ...) | |||
25 | #define kleave(FMT, ...) \ | 26 | #define kleave(FMT, ...) \ |
26 | printk(KERN_DEBUG "<== %s()"FMT"\n", __func__, ##__VA_ARGS__) | 27 | printk(KERN_DEBUG "<== %s()"FMT"\n", __func__, ##__VA_ARGS__) |
27 | #define kdebug(FMT, ...) \ | 28 | #define kdebug(FMT, ...) \ |
28 | printk(KERN_DEBUG "xxx" FMT"yyy\n", ##__VA_ARGS__) | 29 | printk(KERN_DEBUG " "FMT"\n", ##__VA_ARGS__) |
29 | #else | 30 | #else |
30 | #define kenter(FMT, ...) \ | 31 | #define kenter(FMT, ...) \ |
31 | no_printk(KERN_DEBUG "==> %s("FMT")\n", __func__, ##__VA_ARGS__) | 32 | no_printk(KERN_DEBUG "==> %s("FMT")\n", __func__, ##__VA_ARGS__) |
@@ -97,7 +98,7 @@ extern struct key *keyring_search_instkey(struct key *keyring, | |||
97 | typedef int (*key_match_func_t)(const struct key *, const void *); | 98 | typedef int (*key_match_func_t)(const struct key *, const void *); |
98 | 99 | ||
99 | extern key_ref_t keyring_search_aux(key_ref_t keyring_ref, | 100 | extern key_ref_t keyring_search_aux(key_ref_t keyring_ref, |
100 | struct task_struct *tsk, | 101 | const struct cred *cred, |
101 | struct key_type *type, | 102 | struct key_type *type, |
102 | const void *description, | 103 | const void *description, |
103 | key_match_func_t match); | 104 | key_match_func_t match); |
@@ -105,13 +106,13 @@ extern key_ref_t keyring_search_aux(key_ref_t keyring_ref, | |||
105 | extern key_ref_t search_process_keyrings(struct key_type *type, | 106 | extern key_ref_t search_process_keyrings(struct key_type *type, |
106 | const void *description, | 107 | const void *description, |
107 | key_match_func_t match, | 108 | key_match_func_t match, |
108 | struct task_struct *tsk); | 109 | const struct cred *cred); |
109 | 110 | ||
110 | extern struct key *find_keyring_by_name(const char *name, bool skip_perm_check); | 111 | extern struct key *find_keyring_by_name(const char *name, bool skip_perm_check); |
111 | 112 | ||
112 | extern int install_user_keyrings(void); | 113 | extern int install_user_keyrings(void); |
113 | extern int install_thread_keyring(void); | 114 | extern int install_thread_keyring_to_cred(struct cred *); |
114 | extern int install_process_keyring(void); | 115 | extern int install_process_keyring_to_cred(struct cred *); |
115 | 116 | ||
116 | extern struct key *request_key_and_link(struct key_type *type, | 117 | extern struct key *request_key_and_link(struct key_type *type, |
117 | const char *description, | 118 | const char *description, |
@@ -130,12 +131,12 @@ extern long join_session_keyring(const char *name); | |||
130 | * check to see whether permission is granted to use a key in the desired way | 131 | * check to see whether permission is granted to use a key in the desired way |
131 | */ | 132 | */ |
132 | extern int key_task_permission(const key_ref_t key_ref, | 133 | extern int key_task_permission(const key_ref_t key_ref, |
133 | struct task_struct *context, | 134 | const struct cred *cred, |
134 | key_perm_t perm); | 135 | key_perm_t perm); |
135 | 136 | ||
136 | static inline int key_permission(const key_ref_t key_ref, key_perm_t perm) | 137 | static inline int key_permission(const key_ref_t key_ref, key_perm_t perm) |
137 | { | 138 | { |
138 | return key_task_permission(key_ref, current, perm); | 139 | return key_task_permission(key_ref, current_cred(), perm); |
139 | } | 140 | } |
140 | 141 | ||
141 | /* required permissions */ | 142 | /* required permissions */ |
@@ -153,7 +154,7 @@ static inline int key_permission(const key_ref_t key_ref, key_perm_t perm) | |||
153 | struct request_key_auth { | 154 | struct request_key_auth { |
154 | struct key *target_key; | 155 | struct key *target_key; |
155 | struct key *dest_keyring; | 156 | struct key *dest_keyring; |
156 | struct task_struct *context; | 157 | const struct cred *cred; |
157 | void *callout_info; | 158 | void *callout_info; |
158 | size_t callout_len; | 159 | size_t callout_len; |
159 | pid_t pid; | 160 | pid_t pid; |