mirror of
https://gitlab.com/cryptsetup/cryptsetup.git
synced 2025-12-11 19:00:02 +01:00
drop keyring key after successful crypt_suspend
due to wrong sequence of function calls the volume key (if present) in keyring was never dropped properly.
This commit is contained in:
committed by
Milan Broz
parent
7c34ac6f6d
commit
583fbfdb2a
@@ -2383,17 +2383,16 @@ int crypt_suspend(struct crypt_device *cd,
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
key_desc = crypt_get_device_key_description(name);
|
||||||
|
|
||||||
r = dm_suspend_and_wipe_key(cd, name);
|
r = dm_suspend_and_wipe_key(cd, name);
|
||||||
if (r == -ENOTSUP)
|
if (r == -ENOTSUP)
|
||||||
log_err(cd, _("Suspend is not supported for device %s.\n"), name);
|
log_err(cd, _("Suspend is not supported for device %s.\n"), name);
|
||||||
else if (r)
|
else if (r)
|
||||||
log_err(cd, _("Error during suspending device %s.\n"), name);
|
log_err(cd, _("Error during suspending device %s.\n"), name);
|
||||||
|
else
|
||||||
if (!r) {
|
|
||||||
key_desc = crypt_get_device_key_description(name);
|
|
||||||
crypt_drop_keyring_key(cd, key_desc);
|
crypt_drop_keyring_key(cd, key_desc);
|
||||||
free(key_desc);
|
free(key_desc);
|
||||||
}
|
|
||||||
out:
|
out:
|
||||||
dm_backend_exit();
|
dm_backend_exit();
|
||||||
return r;
|
return r;
|
||||||
|
|||||||
Reference in New Issue
Block a user