grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 17/17] luks2: Fix use of incorrect index and some error messa


From: Glenn Washburn
Subject: Re: [PATCH 17/17] luks2: Fix use of incorrect index and some error messages.
Date: Thu, 30 Jul 2020 17:04:06 -0500

On Thu, 30 Jul 2020 22:22:41 +0200
Patrick Steinhardt <ps@pks.im> wrote:

> On Wed, Jul 29, 2020 at 04:50:22PM -0500, development@efficientek.com
> wrote:
> > From: Glenn Washburn <development@efficientek.com>
> > 
> > Signed-off-by: Glenn Washburn <development@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
> > 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]