aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMilan Broz <gmazyland@gmail.com>2024-01-17 12:13:09 +0100
committerMilan Broz <gmazyland@gmail.com>2024-01-18 10:22:39 +0100
commitd23816be950730cfaf9b1f07949de42f00bcf7ef (patch)
tree4458f366b19b805717c484c7dafb66224db3dee8
parentf2c88df719a9c5ccb53ad8e420afd09731b85d24 (diff)
downloadcryptsetup-wip-luks2.tar.gz
LUKS2: add more sanity assignments to header code.wip-luks2
Ensure we do not return partial binary header and also explicitly set header size to zero to silnce stupid cppcheck warnings.
-rw-r--r--lib/luks2/luks2_disk_metadata.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/luks2/luks2_disk_metadata.c b/lib/luks2/luks2_disk_metadata.c
index 14402ac2..cd4646c5 100644
--- a/lib/luks2/luks2_disk_metadata.c
+++ b/lib/luks2/luks2_disk_metadata.c
@@ -256,6 +256,7 @@ static int hdr_read_disk(struct crypt_device *cd,
if (read_lseek_blockwise(devfd, device_block_size(cd, device),
device_alignment(device), hdr_disk,
LUKS2_HDR_BIN_LEN, offset) != LUKS2_HDR_BIN_LEN) {
+ memset(hdr_disk, 0, LUKS2_HDR_BIN_LEN);
return -EIO;
}
@@ -664,6 +665,7 @@ int LUKS2_disk_hdr_read(struct crypt_device *cd, struct luks2_hdr *hdr,
/*
* No header size, check all known offsets.
*/
+ hdr_disk2.hdr_size = 0;
for (r = -EINVAL,i = 0; r < 0 && i < ARRAY_SIZE(hdr2_offsets); i++)
r = hdr_read_disk(cd, device, &hdr_disk2, &json_area2, hdr2_offsets[i], 1);