diff mbox

crypto: algif_hash - correctly handle algos without state

Message ID 1456246916-16130-1-git-send-email-sasha.levin@oracle.com (mailing list archive)
State Rejected
Delegated to: Herbert Xu
Headers show

Commit Message

Sasha Levin Feb. 23, 2016, 5:01 p.m. UTC
Algorithms without state will cause the creation of a 0 sized array, which
is undefined outside of structs.

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
---
 crypto/algif_hash.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Herbert Xu Feb. 27, 2016, 5:10 p.m. UTC | #1
On Tue, Feb 23, 2016 at 12:01:56PM -0500, Sasha Levin wrote:
> Algorithms without state will cause the creation of a 0 sized array, which
> is undefined outside of structs.
> 
> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

Actually the state size should never be zero and we check it upon
algorithm registration, so how can this possibly happen?

Thanks,
diff mbox

Patch

diff --git a/crypto/algif_hash.c b/crypto/algif_hash.c
index 68a5cea..a9f923f 100644
--- a/crypto/algif_hash.c
+++ b/crypto/algif_hash.c
@@ -184,7 +184,7 @@  static int hash_accept(struct socket *sock, struct socket *newsock, int flags)
 	struct alg_sock *ask = alg_sk(sk);
 	struct hash_ctx *ctx = ask->private;
 	struct ahash_request *req = &ctx->req;
-	char state[crypto_ahash_statesize(crypto_ahash_reqtfm(req))];
+	char state[crypto_ahash_statesize(crypto_ahash_reqtfm(req))?:1];
 	struct sock *sk2;
 	struct alg_sock *ask2;
 	struct hash_ctx *ctx2;