From 8dcd0c1440eb5a4953cd5553536b4a46ab6ce834 Mon Sep 17 00:00:00 2001 From: liuzerun Date: Mon, 8 Jan 2024 14:28:34 +0000 Subject: [PATCH 1/3] unlock Signed-off-by: liuzerun --- fs/hmdfs/comm/transport.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/hmdfs/comm/transport.c b/fs/hmdfs/comm/transport.c index 9f65f618a746..822708128c12 100644 --- a/fs/hmdfs/comm/transport.c +++ b/fs/hmdfs/comm/transport.c @@ -898,6 +898,7 @@ static bool is_tcp_socket(struct tcp_handle *tcp) if (tcp->sock->sk->sk_protocol != IPPROTO_TCP) { hmdfs_err("invalid socket protocol"); + release_sock(tcp->sock->sk); return false; } -- Gitee From 087c7a1938cc6d86a9619d5cbc6286eaa7bdf30a Mon Sep 17 00:00:00 2001 From: liuzerun Date: Thu, 4 Jan 2024 11:00:51 +0000 Subject: [PATCH 2/3] sock Signed-off-by: liuzerun --- fs/hmdfs/comm/transport.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/hmdfs/comm/transport.c b/fs/hmdfs/comm/transport.c index 822708128c12..b21c92389eba 100644 --- a/fs/hmdfs/comm/transport.c +++ b/fs/hmdfs/comm/transport.c @@ -896,13 +896,14 @@ static bool is_tcp_socket(struct tcp_handle *tcp) return false; } - if (tcp->sock->sk->sk_protocol != IPPROTO_TCP) { + lock_sock(tcp->sock->sk); + if (tcp->sock->sk->sk_protocol != IPPROTO_TCP || + tcp->sock->sk->sk_family != AF_INET) { hmdfs_err("invalid socket protocol"); release_sock(tcp->sock->sk); return false; } - lock_sock(tcp->sock->sk); icsk = inet_csk(tcp->sock->sk); if (icsk->icsk_ulp_ops) { hmdfs_err("ulp not NULL"); -- Gitee From 6990c42af7a861c1e16c8ea5536037593177e97b Mon Sep 17 00:00:00 2001 From: liuzerun Date: Mon, 8 Jan 2024 12:28:56 +0000 Subject: [PATCH 3/3] sock Signed-off-by: liuzerun --- fs/hmdfs/comm/transport.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/hmdfs/comm/transport.c b/fs/hmdfs/comm/transport.c index b21c92389eba..1b52f46b69b8 100644 --- a/fs/hmdfs/comm/transport.c +++ b/fs/hmdfs/comm/transport.c @@ -898,6 +898,7 @@ static bool is_tcp_socket(struct tcp_handle *tcp) lock_sock(tcp->sock->sk); if (tcp->sock->sk->sk_protocol != IPPROTO_TCP || + tcp->sock->type != SOCK_STREAM || tcp->sock->sk->sk_family != AF_INET) { hmdfs_err("invalid socket protocol"); release_sock(tcp->sock->sk); -- Gitee