mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06: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
1 changed files with 7 additions and 0 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue