[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
> >
- Re: [PATCH 11/17] cryptodisk: Rename total_length field in grub_cryptodisk_t to total_sectors., (continued)
- [PATCH 09/17] fs: When checking if a block list goes past the end of the disk, make sure the total size of the disk is in grub native sector sizes, otherwise there will be blocks at the end of the disk unaccessible by block lists., development, 2020/07/29
- [PATCH 10/17] cryptodisk: Properly handle non-512 byte sized sectors., development, 2020/07/29
- [PATCH 14/17] cryptodisk: Add header line to procfs entry and crypto and source device names., development, 2020/07/29
- [PATCH 13/17] loopback: Add procfs entry 'loopbacks' to output configured loopback devices., development, 2020/07/29
- [PATCH 16/17] luks2: Ensure that bit fields of grub_luks2_digest_t in luks2_parse_digest are initialized before returning., development, 2020/07/29
- [PATCH 15/17] cryptodisk: Add a couple comments noting the usage of a couple fields in grub_cryptodisk_t as is done for grub_disk_t., development, 2020/07/29
- [PATCH 17/17] luks2: Fix use of incorrect index and some error messages., development, 2020/07/29