author: Herbert Xu <herbert@gondor.apana.org.au> 2020-08-27 17:14:36 +1000
committer: Herbert Xu <herbert@gondor.apana.org.au> 2020-08-27 23:20:36 +1000
commit: c195d66a8a75c60515819b101975f38b7ec6577f
parent: bfe8fe939a049e99e1bda0f81e72a612e83ab446
Commit Summary:
Diffstat:
1 file changed, 9 insertions, 3 deletions
diff --git a/crypto/af_alg.c b/crypto/af_alg.c
index a6f581ab200c..8be8bec07cdd 100644
--- a/crypto/af_alg.c
+++ b/crypto/af_alg.c
@@ -16,6 +16,7 @@
#include <linux/module.h>
#include <linux/net.h>
#include <linux/rwsem.h>
+#include <linux/sched.h>
#include <linux/sched/signal.h>
#include <linux/security.h>
@@ -845,9 +846,15 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size,
}
lock_sock(sk);
- if (ctx->init && (init || !ctx->more)) {
- err = -EINVAL;
- goto unlock;
+ if (ctx->init && !ctx->more) {
+ if (ctx->used) {
+ err = -EINVAL;
+ goto unlock;
+ }
+
+ pr_info_once(
+ "%s sent an empty control message without MSG_MORE.\n",
+ current->comm);
}
ctx->init = true;