[PATCH] Destruction of failed keyring oopses
[firefly-linux-kernel-4.4.55.git] / security / keys / keyring.c
index a1f6bac647a1c3a673bfbb2b4b03d0556cc9be88..9c208c756df8136cbaa0a06f5442af60c712ae6d 100644 (file)
@@ -201,7 +201,11 @@ static void keyring_destroy(struct key *keyring)
 
        if (keyring->description) {
                write_lock(&keyring_name_lock);
-               list_del(&keyring->type_data.link);
+
+               if (keyring->type_data.link.next != NULL &&
+                   !list_empty(&keyring->type_data.link))
+                       list_del(&keyring->type_data.link);
+
                write_unlock(&keyring_name_lock);
        }