On Thu, 30 Jul 2020 22:22:41 +0200 Patrick Steinhardt <p...@pks.im> wrote:
> On Wed, Jul 29, 2020 at 04:50:22PM -0500, developm...@efficientek.com > wrote: > > From: Glenn Washburn <developm...@efficientek.com> > > > > Signed-off-by: Glenn Washburn <developm...@efficientek.com> > > --- > > grub-core/disk/luks2.c | 14 +++++++------- > > 1 file changed, 7 insertions(+), 7 deletions(-) > > > > diff --git a/grub-core/disk/luks2.c b/grub-core/disk/luks2.c > > index 44a73d2b8..48600db68 100644 > > --- a/grub-core/disk/luks2.c > > +++ b/grub-core/disk/luks2.c > > @@ -277,34 +277,34 @@ 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; > > } > > if (j == size) > > - return grub_error (GRUB_ERR_FILE_NOT_FOUND, "No digest for > > keyslot %"PRIuGRUB_SIZE); > > + return grub_error (GRUB_ERR_FILE_NOT_FOUND, "No digest for > > keyslot %"PRIuGRUB_SIZE, i); > > These look correct to me. Are you saying that the original code or my changes look correct here? > > /* Get segment that matches the digest. */ > > if (grub_json_getvalue (&segments, root, "segments") || > > grub_json_getsize (&size, &segments)) > > return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not get > > segments"); > > - for (j = 0; j < size; j++) > > + for (i = j, j = 0; j < size; j++) > > Why do we reassign `i = j` here? I think it's to fix the "No segment > for digest" message below which previously referred to the wrong > digest, right? I think we should just stop using `i` and `j` here. If > we renamed them `keyslot_index` and `digest_index`, respectively, and > only use `i` as a loop variable, then the code would be much easier > to read. Yep, I was just trying to make minimal changes. I'll update the patch set with these suggestions. > > { > > - 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; > > } > > if (j == size) > > - return grub_error (GRUB_ERR_FILE_NOT_FOUND, "No segment for > > digest %"PRIuGRUB_SIZE); > > + return grub_error (GRUB_ERR_FILE_NOT_FOUND, "No segment for > > digest %"PRIuGRUB_SIZE, i); > > return GRUB_ERR_NONE; > > } > > -- > > 2.25.1 > > _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel