From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kUeKX-0000Va-Sz for mharc-grub-devel@gnu.org; Mon, 19 Oct 2020 19:12:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40624) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kUeKT-0000UU-Cc for grub-devel@gnu.org; Mon, 19 Oct 2020 19:12:37 -0400 Received: from mail-oi1-x241.google.com ([2607:f8b0:4864:20::241]:46487) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kUeKP-0007U6-Vr for grub-devel@gnu.org; Mon, 19 Oct 2020 19:12:36 -0400 Received: by mail-oi1-x241.google.com with SMTP id l4so1899435oii.13 for ; Mon, 19 Oct 2020 16:12:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficientek-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=qn/1m2keASJ+bspE/pzuxLaDlxSff+Yazmrh7qS3QYc=; b=uXEA4hUXJmYrHa6+nldiTdkzsV1fVb9yg7rPet6YBjCT1F9HeRJsPqWjUR9h8QlT0S q8Jx+q4510wBSPfBHFtuKhdzM5XbdGVZ4+q4IukJDiIt1QXlOf8d2WGFqZ3Y+I125W7U Un1gs84pe0kA//aUmOF4Vw+HHyR4ExjKj8SvPYnJdofcXT3pLRTR2ibG6LtOo263Fjym f8i49OzNNB6gRJB8fm6Ji94/f5X9NWFXbpqbQwVvgC96l7d5rqmrcvKAojseC9mPDVQZ IKn61T7maK+gSozkcErSCfjsKi7sd/ZT1QmbcYBb9rgGU8g4Y2CGqw7J7U5Wi1CbJUpU jO8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qn/1m2keASJ+bspE/pzuxLaDlxSff+Yazmrh7qS3QYc=; b=fU1vkBsGmHM+rfk8DuhHKVR8hQAJz/TPd1KOiBFLZyIHPHlBWjl4RSwDt4+Jmsdnuf 9ZaNyL8H4aX/qZ19VVpmjFpvhZ1WWqAtkj1bnxCOB+QYxAHlF29ue2MaWyYOnpPF7Ze3 9VMKDbW0nTJgXuP3XfT/ymeByVYzAqj6pxCevtLAcwSKJ4gt7Ckn2QvrD3pHEwj4Dk5R VA3JgyBVR0+WjyWbrlWHt5e/MIB9BNj9mo9POllmAUa4g4/eSsjV+X1dIEO8XUzy1B67 ftDNXw191ozL6M78iAknYlovRNGfhWzXcYn2yhVa5ulUZ+tuB1DxA9sjGA05wIM5vujW lzIw== X-Gm-Message-State: AOAM533SQm/1YHaQUIxLcYX3R3v6c8jLvY27MbCqCrsQfLVd5mlWon1V u9RgluPaN+56CBblE6CBizgj/6bGU1Cr7w== X-Google-Smtp-Source: ABdhPJwberYRvICjFalgwqchYzXw6UAwcitZibKYGpMrQ/bjG/NKCQ9r9MWkD4gCDhKtaa1BIXa0mQ== X-Received: by 2002:aca:f5cf:: with SMTP id t198mr134900oih.22.1603149152618; Mon, 19 Oct 2020 16:12:32 -0700 (PDT) Received: from localhost.localdomain (47-218-232-180.bcstcmtk03.res.dyn.suddenlink.net. [47.218.232.180]) by smtp.gmail.com with ESMTPSA id d27sm310848otc.6.2020.10.19.16.12.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Oct 2020 16:12:31 -0700 (PDT) From: Glenn Washburn To: grub-devel@gnu.org Cc: Patrick Steinhardt , Daniel Kiper , Glenn Washburn Subject: [PATCH v3 02/10] luks2: Improve readability in luks2_get_keyslot. Date: Mon, 19 Oct 2020 18:09:50 -0500 Message-Id: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: <20201009100122.GH2088@tanuki> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2607:f8b0:4864:20::241; envelope-from=development@efficientek.com; helo=mail-oi1-x241.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2020 23:12:39 -0000 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 Reviewed-by: Patrick Steinhardt --- 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