X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-linux.git;a=blobdiff_plain;f=security%2Fkeys%2Fgc.c;h=addf060399e09547307d9c023f36d8dbf869a931;hp=39eac1fd5706c6370df8b18fe5ac42e85e1b2ed3;hb=95fc00a4e15e804356d01c1c53c7da3d99a94f20;hpb=4f3f9573b62be8953ac3d9888c253e0744af7195 diff --git a/security/keys/gc.c b/security/keys/gc.c index 39eac1fd5706..addf060399e0 100644 --- a/security/keys/gc.c +++ b/security/keys/gc.c @@ -134,8 +134,10 @@ static noinline void key_gc_unused_keys(struct list_head *keys) kdebug("- %u", key->serial); key_check(key); - /* Throw away the key data */ - if (key->type->destroy) + /* 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);