summaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorHarsh Jain <harsh@chelsio.com>2017-02-01 15:40:28 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-02-14 23:25:32 (GMT)
commit066a7166c5412ea4c04b1946faf2aa7cda48ee60 (patch)
treed9f98c141312fc2679c39c70da8fc12e1cec76c8 /crypto
parent621d101a7ebb7965ee3332e4e6e8d17bdd8f0555 (diff)
downloadlinux-066a7166c5412ea4c04b1946faf2aa7cda48ee60.tar.xz
crypto: algif_aead - Fix kernel panic on list_del
commit 0b529f143e8baad441a5aac9ad55ec2434d8fb46 upstream. Kernel panics when userspace program try to access AEAD interface. Remove node from Linked List before freeing its memory. Signed-off-by: Harsh Jain <harsh@chelsio.com> Reviewed-by: Stephan Müller <smueller@chronox.de> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/algif_aead.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/algif_aead.c b/crypto/algif_aead.c
index e9c0993..e8817e2 100644
--- a/crypto/algif_aead.c
+++ b/crypto/algif_aead.c
@@ -671,9 +671,9 @@ static int aead_recvmsg_sync(struct socket *sock, struct msghdr *msg, int flags)
unlock:
list_for_each_entry_safe(rsgl, tmp, &ctx->list, list) {
af_alg_free_sg(&rsgl->sgl);
+ list_del(&rsgl->list);
if (rsgl != &ctx->first_rsgl)
sock_kfree_s(sk, rsgl, sizeof(*rsgl));
- list_del(&rsgl->list);
}
INIT_LIST_HEAD(&ctx->list);
aead_wmem_wakeup(sk);