[v2 PATCH] crypto: drbg - Delete unused ctx from struct sdesc

Herbert Xu posted 1 patch 1 week, 5 days ago
[v2 PATCH] crypto: drbg - Delete unused ctx from struct sdesc
Posted by Herbert Xu 1 week, 5 days ago
On Mon, Nov 10, 2025 at 07:44:56PM +0900, Gustavo A. R. Silva wrote:
>
> diff --git a/crypto/drbg.c b/crypto/drbg.c
> index 511a27c91813..e9f9775c237f 100644
> --- a/crypto/drbg.c
> +++ b/crypto/drbg.c
> @@ -1442,9 +1442,12 @@ static void drbg_kcapi_set_entropy(struct crypto_rng *tfm,
>  
>  #if defined(CONFIG_CRYPTO_DRBG_HASH) || defined(CONFIG_CRYPTO_DRBG_HMAC)
>  struct sdesc {
> -	struct shash_desc shash;
> -	char ctx[];
> +	/* Must be last as it ends in a flexible-array member. */
> +	TRAILING_OVERLAP(struct shash_desc, shash, __ctx,
> +		char ctx[];
> +	);
>  };
> +static_assert(offsetof(struct sdesc, shash.__ctx) == offsetof(struct sdesc, ctx));

This isn't even used.  Just delete it:

---8<---
The ctx array in struct sdesc is never used.  Delete it as it's
bogus since the previous member ends with a flexible array.

Reported-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

diff --git a/crypto/drbg.c b/crypto/drbg.c
index 511a27c91813..1d433dae9955 100644
--- a/crypto/drbg.c
+++ b/crypto/drbg.c
@@ -1443,7 +1443,6 @@ static void drbg_kcapi_set_entropy(struct crypto_rng *tfm,
 #if defined(CONFIG_CRYPTO_DRBG_HASH) || defined(CONFIG_CRYPTO_DRBG_HMAC)
 struct sdesc {
 	struct shash_desc shash;
-	char ctx[];
 };
 
 static int drbg_init_hash_kernel(struct drbg_state *drbg)
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Re: [v2 PATCH] crypto: drbg - Delete unused ctx from struct sdesc
Posted by Gustavo A. R. Silva 1 week, 5 days ago

On 11/19/25 13:38, Herbert Xu wrote:
> On Mon, Nov 10, 2025 at 07:44:56PM +0900, Gustavo A. R. Silva wrote:
>>
>> diff --git a/crypto/drbg.c b/crypto/drbg.c
>> index 511a27c91813..e9f9775c237f 100644
>> --- a/crypto/drbg.c
>> +++ b/crypto/drbg.c
>> @@ -1442,9 +1442,12 @@ static void drbg_kcapi_set_entropy(struct crypto_rng *tfm,
>>   
>>   #if defined(CONFIG_CRYPTO_DRBG_HASH) || defined(CONFIG_CRYPTO_DRBG_HMAC)
>>   struct sdesc {
>> -	struct shash_desc shash;
>> -	char ctx[];
>> +	/* Must be last as it ends in a flexible-array member. */
>> +	TRAILING_OVERLAP(struct shash_desc, shash, __ctx,
>> +		char ctx[];
>> +	);
>>   };
>> +static_assert(offsetof(struct sdesc, shash.__ctx) == offsetof(struct sdesc, ctx));
> 
> This isn't even used.  Just delete it:

Awesome. :)

Thanks!
-Gustavo

> 
> ---8<---
> The ctx array in struct sdesc is never used.  Delete it as it's
> bogus since the previous member ends with a flexible array.
> 
> Reported-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
> 
> diff --git a/crypto/drbg.c b/crypto/drbg.c
> index 511a27c91813..1d433dae9955 100644
> --- a/crypto/drbg.c
> +++ b/crypto/drbg.c
> @@ -1443,7 +1443,6 @@ static void drbg_kcapi_set_entropy(struct crypto_rng *tfm,
>   #if defined(CONFIG_CRYPTO_DRBG_HASH) || defined(CONFIG_CRYPTO_DRBG_HMAC)
>   struct sdesc {
>   	struct shash_desc shash;
> -	char ctx[];
>   };
>   
>   static int drbg_init_hash_kernel(struct drbg_state *drbg)