[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aNShq_wAowyu4q2n@gondor.apana.org.au>
Date: Thu, 25 Sep 2025 09:58:03 +0800
From: Herbert Xu <herbert@...dor.apana.org.au>
To: Eric Biggers <ebiggers@...nel.org>
Cc: linux-crypto@...r.kernel.org, linux-kernel@...r.kernel.org,
Linus Torvalds <torvalds@...ux-foundation.org>,
stable@...r.kernel.org
Subject: Re: [PATCH v2] crypto: af_alg - Fix incorrect boolean values in
af_alg_ctx
On Wed, Sep 24, 2025 at 01:18:22PM -0700, Eric Biggers wrote:
> Commit 1b34cbbf4f01 ("crypto: af_alg - Disallow concurrent writes in
> af_alg_sendmsg") changed some fields from bool to 1-bit bitfields of
> type u32. However, some assignments to these fields, specifically
> 'more' and 'merge', assign values greater than 1. These relied on C's
> implicit conversion to bool, such that zero becomes false and nonzero
> becomes true. With a 1-bit bitfields of type u32 instead, mod 2 of the
> value is taken instead, resulting in 0 being assigned in some cases when
> 1 was intended. Fix this by restoring the bool type.
>
> Fixes: 1b34cbbf4f01 ("crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg")
> Cc: stable@...r.kernel.org
> Signed-off-by: Eric Biggers <ebiggers@...nel.org>
> ---
>
> v2: keep the bitfields and just change the type, as suggested by Linus
>
> include/crypto/if_alg.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Thanks for catching this and fixing it. I wish there was a warning
for this. Gcc will warn if a constant like 2 is assigned to the
bitfield, but there are no warnings if you assign an int to it.
Cheers,
--
Email: Herbert Xu <herbert@...dor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Powered by blists - more mailing lists