diff options
author | Alex Shi <alex.shi@linaro.org> | 2016-01-14 22:26:03 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2016-01-14 22:26:03 +0800 |
commit | 8fa6d2e1fe937af9dbacb5aad8c43dbb67466fa0 (patch) | |
tree | 53b1cbcaec14e50f491e1cb1f20106c7a15c70e8 /security/keys/gc.c | |
parent | 74bc3fe5f5fbb50d63fd002ce240cc7bca236db1 (diff) | |
parent | f90ae1b62bedd8b57966a7be68855f2d43170db6 (diff) |
Merge branch 'linux-linaro-lsk-v3.18' into linux-linaro-lsk-v3.18-androidlsk-v3.18-16.01-android
Diffstat (limited to 'security/keys/gc.c')
-rw-r--r-- | security/keys/gc.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/security/keys/gc.c b/security/keys/gc.c index c7952375ac53..addf060399e0 100644 --- a/security/keys/gc.c +++ b/security/keys/gc.c @@ -134,6 +134,12 @@ static noinline void key_gc_unused_keys(struct list_head *keys) kdebug("- %u", key->serial); key_check(key); + /* Throw away the key data if the key is instantiated */ + if (test_bit(KEY_FLAG_INSTANTIATED, &key->flags) && + !test_bit(KEY_FLAG_NEGATIVE, &key->flags) && + key->type->destroy) + key->type->destroy(key); + security_key_free(key); /* deal with the user's key tracking and quota */ @@ -148,10 +154,6 @@ static noinline void key_gc_unused_keys(struct list_head *keys) if (test_bit(KEY_FLAG_INSTANTIATED, &key->flags)) atomic_dec(&key->user->nikeys); - /* now throw away the key memory */ - if (key->type->destroy) - key->type->destroy(key); - key_user_put(key->user); kfree(key->description); |