mirror of
https://github.com/qemu/qemu.git
synced 2024-11-23 10:53:37 +08:00
crypto: validate that LUKS payload doesn't overlap with header
We already validate that LUKS keyslots don't overlap with the header, or with each other. This closes the remaining hole in validation of LUKS file regions. Reviewed-by: Richard W.M. Jones <rjones@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
93569c3730
commit
d233fbc327
@ -572,6 +572,13 @@ qcrypto_block_luks_check_header(const QCryptoBlockLUKS *luks, Error **errp)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (luks->header.payload_offset_sector <
|
||||
DIV_ROUND_UP(QCRYPTO_BLOCK_LUKS_KEY_SLOT_OFFSET,
|
||||
QCRYPTO_BLOCK_LUKS_SECTOR_SIZE)) {
|
||||
error_setg(errp, "LUKS payload is overlapping with the header");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Check all keyslots for corruption */
|
||||
for (i = 0 ; i < QCRYPTO_BLOCK_LUKS_NUM_KEY_SLOTS ; i++) {
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user