crypto: af_alg - Fix regression on empty requests
Some user-space programs rely on crypto requests that have no
control metadata. This broke when a check was added to require
the presence of control metadata with the ctx->init flag.
This patch fixes the regression by setting ctx->init as long as
one sendmsg(2) has been made, with or without a control message.
Reported-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Fixes: f3c802a1f3
("crypto: algif_aead - Only wake up when...")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
zero-sugar-mainline-defconfig
parent
ad6a0664c2
commit
662bb52f50
|
@ -851,6 +851,7 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size,
|
||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
goto unlock;
|
goto unlock;
|
||||||
}
|
}
|
||||||
|
ctx->init = true;
|
||||||
|
|
||||||
if (init) {
|
if (init) {
|
||||||
ctx->enc = enc;
|
ctx->enc = enc;
|
||||||
|
@ -858,7 +859,6 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size,
|
||||||
memcpy(ctx->iv, con.iv->iv, ivsize);
|
memcpy(ctx->iv, con.iv->iv, ivsize);
|
||||||
|
|
||||||
ctx->aead_assoclen = con.aead_assoclen;
|
ctx->aead_assoclen = con.aead_assoclen;
|
||||||
ctx->init = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
while (size) {
|
while (size) {
|
||||||
|
|
Loading…
Reference in New Issue