From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1kmlkm-0004vQ-8J for mharc-grub-devel@gnu.org; Tue, 08 Dec 2020 17:46:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:36822) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmlkg-0004lC-NI for grub-devel@gnu.org; Tue, 08 Dec 2020 17:46:34 -0500 Received: from mail-oi1-x241.google.com ([2607:f8b0:4864:20::241]:34485) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kmlkU-0000jY-36 for grub-devel@gnu.org; Tue, 08 Dec 2020 17:46:34 -0500 Received: by mail-oi1-x241.google.com with SMTP id s75so353291oih.1 for ; Tue, 08 Dec 2020 14:46:17 -0800 (PST) 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=TrjEbYS+glPXSWucuJs39IQmEmT8FwnxR1qDq4gSw4s=; b=m2y8ojciBbJghisgWbW0NbgZTyEe4hFnt7pW4+dctd99Vrh20kjxMxWL1nwfncIlnl JO8QJ38Kcd+vhVzwl2p/kZ0nsH6D93Lx7n3uUe55HTUlN6zSWok4EKd9brmJcaQzMgDO AB1zxQPs2QmICCSqziqFBreQlaQ3pimvC02skUHCYTDXjkg7N9zE1HLJKN+hmiX7WcyD znnMJ2Yhctb2XU6SfL1Ay262pUjqTLPUMx6Sc0/sKnNH2V7JInp8+ht0e/8Lc0N3654D dAb35QpCYgB8FE4Sif/7kdVF0Op4ey3rj1stECL70ibacHmZpNNe6A7XHPFXxeZR1KOt TGhg== 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=TrjEbYS+glPXSWucuJs39IQmEmT8FwnxR1qDq4gSw4s=; b=mvH1qTh1QmYGoDsEazztLOFU60g1AJBhISQ503FCbe/9xtdFTRuXtT6nOBvyOJ64t6 UuJCOhHU1rToX2x7esEPcEG/krDzu/g7GjIA4iDIZEOT9jy6lehPZOijf40OaMYCxNPV 14WUF9hUqVto5rSaadBrIy0U4GU8p75ZN48ybM1mVCmwSEZ3zAT1lP35lSc1Sm0Xe+4j PMYV5p+wr5wS1hRW2LhKf9aAH/weekR4zwlHBxCNE/YR4lFiNW47Gd3chQj+nbGpO+bj P5wZYFZnJRShvRrtGsyXu/+RoM0ulPXsuk2cv0k9337sh/nyvOgotisXoaBNhxGzZ6rp rKxQ== X-Gm-Message-State: AOAM531WgpKhzOBLSo1diSdQ5oTmnKkawbjXqp6sTOWUgn5aWTDKtnRA H1xcEwuXvhH4tzrW7hUudischaDlqrb1nw== X-Google-Smtp-Source: ABdhPJx++xkZ0TVUceStotP3xgZfaOm9EzBgRxYJ71+ff6gTRkHCzpNOXn2rmz6GUsgU6O/aOAb9Og== X-Received: by 2002:aca:4e0a:: with SMTP id c10mr140457oib.14.1607467576555; Tue, 08 Dec 2020 14:46:16 -0800 (PST) Received: from crass-HP-ZBook-15-G2.attlocal.net ([136.49.211.192]) by smtp.gmail.com with ESMTPSA id v8sm45538otp.10.2020.12.08.14.46.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 14:46:15 -0800 (PST) From: Glenn Washburn To: grub-devel@gnu.org Cc: Patrick Steinhardt , Daniel Kiper , Glenn Washburn , Daniel Kiper Subject: [PATCH v8 05/18] luks2: Make sure all fields of output argument in luks2_parse_digest() are written to Date: Tue, 8 Dec 2020 16:45:36 -0600 Message-Id: <705548bc2cbaa5af959aa41356b4b0ca7e00440a.1607466704.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::241; envelope-from=development@efficientek.com; helo=mail-oi1-x241.google.com 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: Tue, 08 Dec 2020 22:46:35 -0000 We should assume that the output argument "out" is uninitialized and could have random data. So, make sure to initialize the segments and keyslots bit fields because potentially not all bits of those fields are written to. Otherwise, the digest could say it belongs to keyslots and segments that it does not. Signed-off-by: Glenn Washburn Reviewed-by: Daniel Kiper Reviewed-by: Patrick Steinhardt --- grub-core/disk/luks2.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/grub-core/disk/luks2.c b/grub-core/disk/luks2.c index 402926680..9b19d35c1 100644 --- a/grub-core/disk/luks2.c +++ b/grub-core/disk/luks2.c @@ -230,6 +230,7 @@ luks2_parse_digest (grub_luks2_digest_t *out, const grub_json_t *digest) return grub_error (GRUB_ERR_BAD_ARGUMENT, "Digest references no segments"); + out->segments = 0; for (i = 0; i < size; i++) { if (grub_json_getchild (&o, &segments, i) || @@ -242,6 +243,7 @@ luks2_parse_digest (grub_luks2_digest_t *out, const grub_json_t *digest) return grub_error (GRUB_ERR_BAD_ARGUMENT, "Digest references no keyslots"); + out->keyslots = 0; for (i = 0; i < size; i++) { if (grub_json_getchild (&o, &keyslots, i) || -- 2.27.0