diff options
author | Harsh Jain <harsh@chelsio.com> | 2017-02-01 21:10:28 +0530 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-02-14 15:25:32 -0800 |
commit | 066a7166c5412ea4c04b1946faf2aa7cda48ee60 (patch) | |
tree | d9f98c141312fc2679c39c70da8fc12e1cec76c8 /crypto | |
parent | 621d101a7ebb7965ee3332e4e6e8d17bdd8f0555 (diff) |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/algif_aead.c b/crypto/algif_aead.c index e9c0993b131d..e8817e2f0597 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); |