From be144f319170b1add8ef6d47fb12514655535a3c Mon Sep 17 00:00:00 2001 From: liuzerun Date: Thu, 4 Jan 2024 11:00:51 +0000 Subject: [PATCH 1/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 9f65f618a746..2d93e96b5822 100644 --- a/fs/hmdfs/comm/transport.c +++ b/fs/hmdfs/comm/transport.c @@ -896,12 +896,13 @@ 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"); 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 5811e676689b12f3fb5aea2184c38e13b0b47df8 Mon Sep 17 00:00:00 2001 From: liuzerun Date: Mon, 8 Jan 2024 12:28:56 +0000 Subject: [PATCH 2/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 2d93e96b5822..5c42a33c7370 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"); return false; -- Gitee From 015a8e3c891fb2f4726f50b780c1cc8ae118fdc3 Mon Sep 17 00:00:00 2001 From: liuzerun Date: Mon, 8 Jan 2024 14:28:34 +0000 Subject: [PATCH 3/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 5c42a33c7370..1b52f46b69b8 100644 --- a/fs/hmdfs/comm/transport.c +++ b/fs/hmdfs/comm/transport.c @@ -901,6 +901,7 @@ static bool is_tcp_socket(struct tcp_handle *tcp) tcp->sock->type != SOCK_STREAM || tcp->sock->sk->sk_family != AF_INET) { hmdfs_err("invalid socket protocol"); + release_sock(tcp->sock->sk); return false; } -- Gitee