KEYS: Fix crash when attempt to garbage collect an uninstantiated keyring
[pandora-kernel.git] / security / keys / gc.c
index 207e968..7817bb0 100644 (file)
@@ -172,8 +172,10 @@ static noinline void key_gc_unused_key(struct key *key)
 {
        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);