diff options
Diffstat (limited to 'security/keys/request_key_auth.c')
-rw-r--r-- | security/keys/request_key_auth.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/security/keys/request_key_auth.c b/security/keys/request_key_auth.c index 729156b3485e..1762d44711d5 100644 --- a/security/keys/request_key_auth.c +++ b/security/keys/request_key_auth.c | |||
@@ -128,6 +128,7 @@ static void request_key_auth_destroy(struct key *key) | |||
128 | } | 128 | } |
129 | 129 | ||
130 | key_put(rka->target_key); | 130 | key_put(rka->target_key); |
131 | key_put(rka->dest_keyring); | ||
131 | kfree(rka->callout_info); | 132 | kfree(rka->callout_info); |
132 | kfree(rka); | 133 | kfree(rka); |
133 | 134 | ||
@@ -139,7 +140,7 @@ static void request_key_auth_destroy(struct key *key) | |||
139 | * access to the caller's security data | 140 | * access to the caller's security data |
140 | */ | 141 | */ |
141 | struct key *request_key_auth_new(struct key *target, const void *callout_info, | 142 | struct key *request_key_auth_new(struct key *target, const void *callout_info, |
142 | size_t callout_len) | 143 | size_t callout_len, struct key *dest_keyring) |
143 | { | 144 | { |
144 | struct request_key_auth *rka, *irka; | 145 | struct request_key_auth *rka, *irka; |
145 | struct key *authkey = NULL; | 146 | struct key *authkey = NULL; |
@@ -188,6 +189,7 @@ struct key *request_key_auth_new(struct key *target, const void *callout_info, | |||
188 | } | 189 | } |
189 | 190 | ||
190 | rka->target_key = key_get(target); | 191 | rka->target_key = key_get(target); |
192 | rka->dest_keyring = key_get(dest_keyring); | ||
191 | memcpy(rka->callout_info, callout_info, callout_len); | 193 | memcpy(rka->callout_info, callout_info, callout_len); |
192 | rka->callout_len = callout_len; | 194 | rka->callout_len = callout_len; |
193 | 195 | ||
@@ -223,6 +225,7 @@ error_inst: | |||
223 | key_put(authkey); | 225 | key_put(authkey); |
224 | error_alloc: | 226 | error_alloc: |
225 | key_put(rka->target_key); | 227 | key_put(rka->target_key); |
228 | key_put(rka->dest_keyring); | ||
226 | kfree(rka->callout_info); | 229 | kfree(rka->callout_info); |
227 | kfree(rka); | 230 | kfree(rka); |
228 | kleave("= %d", ret); | 231 | kleave("= %d", ret); |