From: Glenn Washburn Date: Sat, 7 Nov 2020 04:44:25 +0000 (-0600) Subject: luks2: Use correct index variable when looping in luks2_get_keyslot() X-Git-Tag: grub-2.06-rc1~182 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c28907e235262cc497d525aea57e357f29e52873;p=thirdparty%2Fgrub.git luks2: Use correct index variable when looping in luks2_get_keyslot() The loop variable "j" should be used to index the digests and segments json array, instead of the variable "i", which is the keyslot index. Signed-off-by: Glenn Washburn Reviewed-by: Patrick Steinhardt Reviewed-by: Daniel Kiper --- diff --git a/grub-core/disk/luks2.c b/grub-core/disk/luks2.c index d963255d4..be42deb14 100644 --- a/grub-core/disk/luks2.c +++ b/grub-core/disk/luks2.c @@ -275,10 +275,10 @@ luks2_get_keyslot (grub_luks2_keyslot_t *k, grub_luks2_digest_t *d, grub_luks2_s return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not get digests"); for (j = 0; j < size; j++) { - if (grub_json_getchild (&digest, &digests, i) || + if (grub_json_getchild (&digest, &digests, j) || grub_json_getchild (&digest, &digest, 0) || luks2_parse_digest (d, &digest)) - return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse digest %"PRIuGRUB_SIZE, i); + return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse digest %"PRIuGRUB_SIZE, j); if ((d->keyslots & (1 << idx))) break; @@ -292,11 +292,11 @@ luks2_get_keyslot (grub_luks2_keyslot_t *k, grub_luks2_digest_t *d, grub_luks2_s return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not get segments"); for (j = 0; j < size; j++) { - if (grub_json_getchild (&segment, &segments, i) || + if (grub_json_getchild (&segment, &segments, j) || grub_json_getuint64 (&idx, &segment, NULL) || grub_json_getchild (&segment, &segment, 0) || luks2_parse_segment (s, &segment)) - return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse segment %"PRIuGRUB_SIZE, i); + return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse segment %"PRIuGRUB_SIZE, j); if ((d->segments & (1 << idx))) break;