From nobody Fri Dec 19 20:11:14 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8064722BF90; Sun, 24 Mar 2024 23:50:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711324233; cv=none; b=D5uFm20JihbRb0UCJ7J37VwrDLUV765j1sokGVErnKIoaX+YNWB5Cx2hAxAW+z9xjhJWjhO8toUoAobVAOkcgWlB8SGH50xWCdlF9HuTtl6WLv2XFyyq9HspkU7ZUuRi1LotmKZFQCQ64WfThGhTPWvd9iEIKz8Rga/oPUE23Hw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711324233; c=relaxed/simple; bh=QMhrV214RLPZ2ZrKumKQA+aTfeZeVAws8l4YnWi2/c8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bVvcPtK7JVMCHehPMUMROjbllDhlL39PVgZKK+JVuVUznEsiOJcrUjrsUnWbi2AHCW3Sz0umLZWD1PlDRPKEazFUCxgtiPVU/XvpSRMiAMKz1QIWMF9HQc0MAPxMi7krANVZmqjGeeXEiLvwbdCj4C8wUPZDifX6g6DGzciBLMU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KZjJGZJF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KZjJGZJF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5BADCC43390; Sun, 24 Mar 2024 23:50:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711324232; bh=QMhrV214RLPZ2ZrKumKQA+aTfeZeVAws8l4YnWi2/c8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KZjJGZJFqiMO36edUgziFClUgUPtsW6w/AgWHjBnZiN2jD6NPX2D7204w6NSB/ZTC KmFXw8vHdSN8CnI2A4p6HGk5dRAVcsYeIQ/wCdQIoSkcrFkNFFnTWMC9UspxdIEmgo do51sN1Ujexsl2YwgvsGiX4FTtqyxrJ/iNn0HXLW7Aouaa29BYyK/tZ5oDx4XccOsr xHLpEbXDbavvb30TXQj3KkGRkJIfzIlYgyv31WJePEA7RPlF6h56fNB9FqH5B2TLqo FSVR/zvjw6YKMNyF8ArkgU0v2SXQx7n5Z496+pBq9sEhSh4IfCKuNcicK5iJIqRenf xJfOHzrhnk2fA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ondrej Mosnacek , Stephan Mueller , Herbert Xu , Sasha Levin Subject: [PATCH 4.19 015/148] crypto: algif_aead - fix uninitialized ctx->init Date: Sun, 24 Mar 2024 19:47:59 -0400 Message-ID: <20240324235012.1356413-16-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324235012.1356413-1-sashal@kernel.org> References: <20240324235012.1356413-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ondrej Mosnacek [ Upstream commit 21dfbcd1f5cbff9cf2f9e7e43475aed8d072b0dd ] In skcipher_accept_parent_nokey() the whole af_alg_ctx structure is cleared by memset() after allocation, so add such memset() also to aead_accept_parent_nokey() so that the new "init" field is also initialized to zero. Without that the initial ctx->init checks might randomly return true and cause errors. While there, also remove the redundant zero assignments in both functions. Found via libkcapi testsuite. Cc: Stephan Mueller Fixes: f3c802a1f300 ("crypto: algif_aead - Only wake up when ctx->more is z= ero") Suggested-by: Herbert Xu Signed-off-by: Ondrej Mosnacek Signed-off-by: Herbert Xu Signed-off-by: Sasha Levin --- crypto/algif_aead.c | 6 ------ crypto/algif_skcipher.c | 7 +------ 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/crypto/algif_aead.c b/crypto/algif_aead.c index 182783801ffa6..4cb2b12175490 100644 --- a/crypto/algif_aead.c +++ b/crypto/algif_aead.c @@ -563,12 +563,6 @@ static int aead_accept_parent_nokey(void *private, str= uct sock *sk) =20 INIT_LIST_HEAD(&ctx->tsgl_list); ctx->len =3D len; - ctx->used =3D 0; - atomic_set(&ctx->rcvused, 0); - ctx->more =3D 0; - ctx->merge =3D 0; - ctx->enc =3D 0; - ctx->aead_assoclen =3D 0; crypto_init_wait(&ctx->wait); =20 ask->private =3D ctx; diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c index 9d2e9783c0d4e..af08fc18a4926 100644 --- a/crypto/algif_skcipher.c +++ b/crypto/algif_skcipher.c @@ -337,6 +337,7 @@ static int skcipher_accept_parent_nokey(void *private, = struct sock *sk) ctx =3D sock_kmalloc(sk, len, GFP_KERNEL); if (!ctx) return -ENOMEM; + memset(ctx, 0, len); =20 ctx->iv =3D sock_kmalloc(sk, crypto_skcipher_ivsize(tfm), GFP_KERNEL); @@ -344,16 +345,10 @@ static int skcipher_accept_parent_nokey(void *private= , struct sock *sk) sock_kfree_s(sk, ctx, len); return -ENOMEM; } - memset(ctx->iv, 0, crypto_skcipher_ivsize(tfm)); =20 INIT_LIST_HEAD(&ctx->tsgl_list); ctx->len =3D len; - ctx->used =3D 0; - atomic_set(&ctx->rcvused, 0); - ctx->more =3D 0; - ctx->merge =3D 0; - ctx->enc =3D 0; crypto_init_wait(&ctx->wait); =20 ask->private =3D ctx; --=20 2.43.0