diff options
Diffstat (limited to 'security/keys/request_key_auth.c')
-rw-r--r-- | security/keys/request_key_auth.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/security/keys/request_key_auth.c b/security/keys/request_key_auth.c index 87ea2f54dedc..afc304e8b61e 100644 --- a/security/keys/request_key_auth.c +++ b/security/keys/request_key_auth.c | |||
@@ -17,7 +17,7 @@ | |||
17 | #include <linux/slab.h> | 17 | #include <linux/slab.h> |
18 | #include <linux/uaccess.h> | 18 | #include <linux/uaccess.h> |
19 | #include "internal.h" | 19 | #include "internal.h" |
20 | #include <keys/user-type.h> | 20 | #include <keys/request_key_auth-type.h> |
21 | 21 | ||
22 | static int request_key_auth_preparse(struct key_preparsed_payload *); | 22 | static int request_key_auth_preparse(struct key_preparsed_payload *); |
23 | static void request_key_auth_free_preparse(struct key_preparsed_payload *); | 23 | static void request_key_auth_free_preparse(struct key_preparsed_payload *); |
@@ -68,7 +68,7 @@ static int request_key_auth_instantiate(struct key *key, | |||
68 | static void request_key_auth_describe(const struct key *key, | 68 | static void request_key_auth_describe(const struct key *key, |
69 | struct seq_file *m) | 69 | struct seq_file *m) |
70 | { | 70 | { |
71 | struct request_key_auth *rka = key->payload.data[0]; | 71 | struct request_key_auth *rka = get_request_key_auth(key); |
72 | 72 | ||
73 | seq_puts(m, "key:"); | 73 | seq_puts(m, "key:"); |
74 | seq_puts(m, key->description); | 74 | seq_puts(m, key->description); |
@@ -83,7 +83,7 @@ static void request_key_auth_describe(const struct key *key, | |||
83 | static long request_key_auth_read(const struct key *key, | 83 | static long request_key_auth_read(const struct key *key, |
84 | char __user *buffer, size_t buflen) | 84 | char __user *buffer, size_t buflen) |
85 | { | 85 | { |
86 | struct request_key_auth *rka = key->payload.data[0]; | 86 | struct request_key_auth *rka = get_request_key_auth(key); |
87 | size_t datalen; | 87 | size_t datalen; |
88 | long ret; | 88 | long ret; |
89 | 89 | ||
@@ -109,7 +109,7 @@ static long request_key_auth_read(const struct key *key, | |||
109 | */ | 109 | */ |
110 | static void request_key_auth_revoke(struct key *key) | 110 | static void request_key_auth_revoke(struct key *key) |
111 | { | 111 | { |
112 | struct request_key_auth *rka = key->payload.data[0]; | 112 | struct request_key_auth *rka = get_request_key_auth(key); |
113 | 113 | ||
114 | kenter("{%d}", key->serial); | 114 | kenter("{%d}", key->serial); |
115 | 115 | ||
@@ -136,7 +136,7 @@ static void free_request_key_auth(struct request_key_auth *rka) | |||
136 | */ | 136 | */ |
137 | static void request_key_auth_destroy(struct key *key) | 137 | static void request_key_auth_destroy(struct key *key) |
138 | { | 138 | { |
139 | struct request_key_auth *rka = key->payload.data[0]; | 139 | struct request_key_auth *rka = get_request_key_auth(key); |
140 | 140 | ||
141 | kenter("{%d}", key->serial); | 141 | kenter("{%d}", key->serial); |
142 | 142 | ||
@@ -147,8 +147,9 @@ static void request_key_auth_destroy(struct key *key) | |||
147 | * Create an authorisation token for /sbin/request-key or whoever to gain | 147 | * Create an authorisation token for /sbin/request-key or whoever to gain |
148 | * access to the caller's security data. | 148 | * access to the caller's security data. |
149 | */ | 149 | */ |
150 | struct key *request_key_auth_new(struct key *target, const void *callout_info, | 150 | struct key *request_key_auth_new(struct key *target, const char *op, |
151 | size_t callout_len, struct key *dest_keyring) | 151 | const void *callout_info, size_t callout_len, |
152 | struct key *dest_keyring) | ||
152 | { | 153 | { |
153 | struct request_key_auth *rka, *irka; | 154 | struct request_key_auth *rka, *irka; |
154 | const struct cred *cred = current->cred; | 155 | const struct cred *cred = current->cred; |
@@ -166,6 +167,7 @@ struct key *request_key_auth_new(struct key *target, const void *callout_info, | |||
166 | if (!rka->callout_info) | 167 | if (!rka->callout_info) |
167 | goto error_free_rka; | 168 | goto error_free_rka; |
168 | rka->callout_len = callout_len; | 169 | rka->callout_len = callout_len; |
170 | strlcpy(rka->op, op, sizeof(rka->op)); | ||
169 | 171 | ||
170 | /* see if the calling process is already servicing the key request of | 172 | /* see if the calling process is already servicing the key request of |
171 | * another process */ | 173 | * another process */ |