From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kOqRi-0007Ws-Ab for mharc-grub-devel@gnu.org; Sat, 03 Oct 2020 18:56:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54666) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kOqRg-0007Wj-J5 for grub-devel@gnu.org; Sat, 03 Oct 2020 18:56:04 -0400 Received: from mail-ot1-x342.google.com ([2607:f8b0:4864:20::342]:44706) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kOqRe-0000F3-Rl for grub-devel@gnu.org; Sat, 03 Oct 2020 18:56:04 -0400 Received: by mail-ot1-x342.google.com with SMTP id a2so5084485otr.11 for ; Sat, 03 Oct 2020 15:56:02 -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=Cj+AmP+LFKIWzNN6bgn9WM/cImIWYs2jAZqOmVlRrVs=; b=ZWubGkagk/KHwEIwRCKosudPPtk7bnY1+VxT0R6XZZTO7S0ZAAAxf//bZGanAubDkn 2usKnUWw+qTgVLL7C3tOuwnOV/llR546tkHslxBIUeKhxiCKP5U0aeamOFY7zzeMTUc1 3E3ON0x44wbfnTK/sw3VKWR6/mGHfM0G4SKLwPZx8pYxu3ZAyJm2XFzJHUyxJfG7yK3M xCGQNjgl3lY4s+ZtOXmvZ3xaItgiq4byI6QTcGLfLFu/TYHLkk5vBFBFU7RyWpCtIs5g 3VJ1BoklSRzNlJxkiSTuTs6m/nA5jTT+RAE+8DTmDgP3jBBWZ5B3eZLWDHMgTxd2I/C5 bxmQ== 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=Cj+AmP+LFKIWzNN6bgn9WM/cImIWYs2jAZqOmVlRrVs=; b=SNM/8D6T3uORfOPCs9rkPUQDSld+buyOPJIofzvOntIoqivUjI1905S3TVccIXSUUW UztOEnoLpspj5JgMZWfr/HSZApNcsTk71cF5Fz99/XcTf2GurrppY6r2HCrj3NzCMZqD T9A30vHudQwYQpb7iBppE2vP4KRBfOaXa5wf1AkH3AdU/eh/vSIayXFTv9HXQOma6q2N k+OnkRFTT/b5YW2ocKx6SvvPShQdYrB8O7Ire26lqx/skfanXA04E9SYVyR21cJiI99E lmqsOd0NDX8m6k9tFhkSCtto+/kT4eOxJ55XBuF3rLIvFVuQnx+KI3/EqRwqfz8TmcU0 4BVQ== X-Gm-Message-State: AOAM532Gqj/a3TNT3kiN/+V1C8Y3ZSFIlVZaUzLIpnoXg/+0zYPUMK4x +ctXb2d1lcsz3v7P73j0/5Lu5QW1pwQjow== X-Google-Smtp-Source: ABdhPJwEJ1P8giqG58m6vE/bqaHtuD8Yia9IuKn2EbCYixn6Jqd/o9EhIypZUX0owNN/N3znTPaSKA== X-Received: by 2002:a9d:929:: with SMTP id 38mr6598840otp.324.1601765761508; Sat, 03 Oct 2020 15:56:01 -0700 (PDT) Received: from crass-HP-ZBook-15-G2.lan ([136.49.44.103]) by smtp.gmail.com with ESMTPSA id d17sm1524580oth.73.2020.10.03.15.56.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 03 Oct 2020 15:56:00 -0700 (PDT) From: Glenn Washburn To: grub-devel@gnu.org Cc: Daniel Kiper , Patrick Steinhardt , Glenn Washburn Subject: [PATCH v2 01/10] luks2: Fix use of incorrect index and some grub_error() messages. Date: Sat, 3 Oct 2020 17:55:25 -0500 Message-Id: <80dd653c989818e86f219cbfc83be9115c06ccd2.1601765266.git.development@efficientek.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2607:f8b0:4864:20::342; envelope-from=development@efficientek.com; helo=mail-ot1-x342.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: Sat, 03 Oct 2020 22:56:04 -0000 When looping over the digests and segments, the loop variable is j, but the variable i is used to index in the the digests and segments json array. The variable i is the keyslot index. Similarly, there are several grub_error() statements using the wrong index in constructing the error string. Signed-off-by: Glenn Washburn --- 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 31d7166fc..2241e0312 100644 --- a/grub-core/disk/luks2.c +++ b/grub-core/disk/luks2.c @@ -275,34 +275,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); /* 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++) { - 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.27.0