[PATCH 5.10 034/103] chtls: Added a check to avoid NULL pointer dereference

From: Greg Kroah-Hartman
Date: Fri Jan 15 2021 - 07:45:06 EST


From: Ayush Sawal <ayush.sawal@xxxxxxxxxxx>

[ Upstream commit eade1e0a4fb31d48eeb1589d9bb859ae4dd6181d ]

In case of server removal lookup_stid() may return NULL pointer, which
is used as listen_ctx. So added a check before accessing this pointer.

Fixes: cc35c88ae4db ("crypto : chtls - CPL handler definition")
Signed-off-by: Vinay Kumar Yadav <vinay.yadav@xxxxxxxxxxx>
Signed-off-by: Ayush Sawal <ayush.sawal@xxxxxxxxxxx>
Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c | 5 +++++
1 file changed, 5 insertions(+)

--- a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c
+++ b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c
@@ -1596,6 +1596,11 @@ static int chtls_pass_establish(struct c
sk_wake_async(sk, 0, POLL_OUT);

data = lookup_stid(cdev->tids, stid);
+ if (!data) {
+ /* listening server close */
+ kfree_skb(skb);
+ goto unlock;
+ }
lsk = ((struct listen_ctx *)data)->lsk;

bh_lock_sock(lsk);