luks2: Make sure all fields of output argument in luks2_parse_digest() are written to
We should assume that the output argument "out" is uninitialized and could have random data. So, make sure to initialize the segments and keyslots bit fields because potentially not all bits of those fields are written to. Otherwise, the digest could say it belongs to keyslots and segments that it does not. Signed-off-by: Glenn Washburn <development@efficientek.com> Reviewed-by: Patrick Steinhardt <ps@pks.im> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
fe902c3f4c
commit
7904c5ce67
@ -230,6 +230,7 @@ luks2_parse_digest (grub_luks2_digest_t *out, const grub_json_t *digest)
|
||||
return grub_error (GRUB_ERR_BAD_ARGUMENT,
|
||||
"Digest references no segments");
|
||||
|
||||
out->segments = 0;
|
||||
for (i = 0; i < size; i++)
|
||||
{
|
||||
if (grub_json_getchild (&o, &segments, i) ||
|
||||
@ -242,6 +243,7 @@ luks2_parse_digest (grub_luks2_digest_t *out, const grub_json_t *digest)
|
||||
return grub_error (GRUB_ERR_BAD_ARGUMENT,
|
||||
"Digest references no keyslots");
|
||||
|
||||
out->keyslots = 0;
|
||||
for (i = 0; i < size; i++)
|
||||
{
|
||||
if (grub_json_getchild (&o, &keyslots, i) ||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user