diff options
Diffstat (limited to 'security/keys/gc.c')
| -rw-r--r-- | security/keys/gc.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/security/keys/gc.c b/security/keys/gc.c index c7952375ac53..39eac1fd5706 100644 --- a/security/keys/gc.c +++ b/security/keys/gc.c | |||
| @@ -134,6 +134,10 @@ static noinline void key_gc_unused_keys(struct list_head *keys) | |||
| 134 | kdebug("- %u", key->serial); | 134 | kdebug("- %u", key->serial); |
| 135 | key_check(key); | 135 | key_check(key); |
| 136 | 136 | ||
| 137 | /* Throw away the key data */ | ||
| 138 | if (key->type->destroy) | ||
| 139 | key->type->destroy(key); | ||
| 140 | |||
| 137 | security_key_free(key); | 141 | security_key_free(key); |
| 138 | 142 | ||
| 139 | /* deal with the user's key tracking and quota */ | 143 | /* deal with the user's key tracking and quota */ |
| @@ -148,10 +152,6 @@ static noinline void key_gc_unused_keys(struct list_head *keys) | |||
| 148 | if (test_bit(KEY_FLAG_INSTANTIATED, &key->flags)) | 152 | if (test_bit(KEY_FLAG_INSTANTIATED, &key->flags)) |
| 149 | atomic_dec(&key->user->nikeys); | 153 | atomic_dec(&key->user->nikeys); |
| 150 | 154 | ||
| 151 | /* now throw away the key memory */ | ||
| 152 | if (key->type->destroy) | ||
| 153 | key->type->destroy(key); | ||
| 154 | |||
| 155 | key_user_put(key->user); | 155 | key_user_put(key->user); |
| 156 | 156 | ||
| 157 | kfree(key->description); | 157 | kfree(key->description); |
