mirror of
https://github.com/mii443/qemu.git
synced 2025-08-22 23:25:48 +00:00
crypto: enforce that key material doesn't overlap with LUKS header
We already check that key material doesn't overlap between key slots, and that it doesn't overlap with the payload. We didn't check for overlap with the LUKS header. Reviewed-by: Richard W.M. Jones <rjones@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
@ -595,6 +595,14 @@ qcrypto_block_luks_check_header(const QCryptoBlockLUKS *luks, Error **errp)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (start1 < DIV_ROUND_UP(sizeof(QCryptoBlockLUKSHeader),
|
||||
QCRYPTO_BLOCK_LUKS_SECTOR_SIZE)) {
|
||||
error_setg(errp,
|
||||
"Keyslot %zu is overlapping with the LUKS header",
|
||||
i);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (start1 + len1 > luks->header.payload_offset_sector) {
|
||||
error_setg(errp,
|
||||
"Keyslot %zu is overlapping with the encrypted payload",
|
||||
|
Reference in New Issue
Block a user