[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 02/10] luks2: Improve readability in luks2_get_keyslot.
From: |
Glenn Washburn |
Subject: |
[PATCH v3 02/10] luks2: Improve readability in luks2_get_keyslot. |
Date: |
Mon, 19 Oct 2020 18:09:50 -0500 |
Introduce new variables keyslot_key, digest_key, and segment_key which
represent the integer key of the item in the respective associative array
when looping over the array items. This replaces using a generically
named variable named "idx" used for all three values. The parameter "i"
is renamed to "keyslot_idx" and the loop variable "j" is renamed to "i".
Error messages now distinguish between indexes and keys. The former
include "index" in the error string, and the later are surrounded in quotes.
Signed-off-by: Glenn Washburn <development@efficientek.com>
Reviewed-by: Patrick Steinhardt <ps@pks.im>
---
grub-core/disk/luks2.c | 39 ++++++++++++++++++++-------------------
1 file changed, 20 insertions(+), 19 deletions(-)
diff --git a/grub-core/disk/luks2.c b/grub-core/disk/luks2.c
index 2241e0312..c3cd63606 100644
--- a/grub-core/disk/luks2.c
+++ b/grub-core/disk/luks2.c
@@ -255,54 +255,55 @@ luks2_parse_digest (grub_luks2_digest_t *out, const
grub_json_t *digest)
static grub_err_t
luks2_get_keyslot (grub_luks2_keyslot_t *k, grub_luks2_digest_t *d,
grub_luks2_segment_t *s,
- const grub_json_t *root, grub_size_t i)
+ const grub_json_t *root, grub_size_t keyslot_idx)
{
grub_json_t keyslots, keyslot, digests, digest, segments, segment;
- grub_size_t j, size;
- grub_uint64_t idx;
+ grub_size_t i, size;
+ grub_uint64_t keyslot_key, digest_key, segment_key;
/* Get nth keyslot */
if (grub_json_getvalue (&keyslots, root, "keyslots") ||
- grub_json_getchild (&keyslot, &keyslots, i) ||
- grub_json_getuint64 (&idx, &keyslot, NULL) ||
+ grub_json_getchild (&keyslot, &keyslots, keyslot_idx) ||
+ grub_json_getuint64 (&keyslot_key, &keyslot, NULL) ||
grub_json_getchild (&keyslot, &keyslot, 0) ||
luks2_parse_keyslot (k, &keyslot))
- return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse keyslot
%"PRIuGRUB_SIZE, i);
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse keyslot index
%"PRIuGRUB_SIZE, keyslot_idx);
/* Get digest that matches the keyslot. */
if (grub_json_getvalue (&digests, root, "digests") ||
grub_json_getsize (&size, &digests))
return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not get digests");
- for (j = 0; j < size; j++)
+ for (i = 0; i < size; i++)
{
- if (grub_json_getchild (&digest, &digests, j) ||
+ if (grub_json_getchild (&digest, &digests, i) ||
+ grub_json_getuint64 (&digest_key, &digest, NULL) ||
grub_json_getchild (&digest, &digest, 0) ||
luks2_parse_digest (d, &digest))
- return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse digest
%"PRIuGRUB_SIZE, j);
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse digest index
%"PRIuGRUB_SIZE, i);
- if ((d->keyslots & (1 << idx)))
+ if ((d->keyslots & (1 << keyslot_key)))
break;
}
- if (j == size)
- return grub_error (GRUB_ERR_FILE_NOT_FOUND, "No digest for keyslot
%"PRIuGRUB_SIZE, i);
+ if (i == size)
+ return grub_error (GRUB_ERR_FILE_NOT_FOUND, "No digest for keyslot
\"%"PRIuGRUB_UINT64_T"\"", keyslot_key);
/* 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 (i = j, j = 0; j < size; j++)
+ for (i = 0; i < size; i++)
{
- if (grub_json_getchild (&segment, &segments, j) ||
- grub_json_getuint64 (&idx, &segment, NULL) ||
+ if (grub_json_getchild (&segment, &segments, i) ||
+ grub_json_getuint64 (&segment_key, &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, j);
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse segment
index %"PRIuGRUB_SIZE, i);
- if ((d->segments & (1 << idx)))
+ if ((d->segments & (1 << segment_key)))
break;
}
- if (j == size)
- return grub_error (GRUB_ERR_FILE_NOT_FOUND, "No segment for digest
%"PRIuGRUB_SIZE, i);
+ if (i == size)
+ return grub_error (GRUB_ERR_FILE_NOT_FOUND, "No segment for digest
\"%"PRIuGRUB_UINT64_T"\"", digest_key);
return GRUB_ERR_NONE;
}
--
2.27.0
- Re: [PATCH v2 07/10] cryptodisk: Replace some literals with constants in grub_cryptodisk_endecrypt., (continued)
- [PATCH v2 09/10] cryptodisk: Rename offset in grub_cryptodisk_t to offset_sectors., Glenn Washburn, 2020/10/03
- [PATCH v2 10/10] luks2: Rename source disk variabled named 'disk' to 'source' as in luks.c., Glenn Washburn, 2020/10/03
- Re: [PATCH v2 00/10] Cryptodisk fixes for v2.06 redux, Patrick Steinhardt, 2020/10/09
- [PATCH v3 00/10] Cryptodisk fixes for v2.06 redux, Glenn Washburn, 2020/10/19
- [PATCH v3 02/10] luks2: Improve readability in luks2_get_keyslot.,
Glenn Washburn <=
- Re: [PATCH v3 02/10] luks2: Improve readability in luks2_get_keyslot., Daniel Kiper, 2020/10/23
- Re: [PATCH v3 02/10] luks2: Improve readability in luks2_get_keyslot., Glenn Washburn, 2020/10/29
- Re: [PATCH v3 02/10] luks2: Improve readability in luks2_get_keyslot., Daniel Kiper, 2020/10/30
- [PATCH v3 03/10] luks2: Use more intuitive keyslot key instead of index when naming keyslot., Glenn Washburn, 2020/10/19
- Re: [PATCH v3 03/10] luks2: Use more intuitive keyslot key instead of index when naming keyslot., Patrick Steinhardt, 2020/10/23
- [PATCH v3 01/10] luks2: Fix use of incorrect index and some grub_error() messages., Glenn Washburn, 2020/10/19
- Re: [PATCH v3 01/10] luks2: Fix use of incorrect index and some grub_error() messages., Daniel Kiper, 2020/10/23
- Re: [PATCH v3 01/10] luks2: Fix use of incorrect index and some grub_error() messages., Patrick Steinhardt, 2020/10/23
- [PATCH v3 07/10] cryptodisk: Replace some literals with constants in grub_cryptodisk_endecrypt., Glenn Washburn, 2020/10/19
- Re: [PATCH v3 07/10] cryptodisk: Replace some literals with constants in grub_cryptodisk_endecrypt., Patrick Steinhardt, 2020/10/23