From 5e47a24aba534b0323b1b68afb6ca8a8579742fb Mon Sep 17 00:00:00 2001 From: ligd Date: Fri, 15 Oct 2021 18:36:30 +0800 Subject: [PATCH] local_socket: set lc_peer when accept() instead of connect() Change-Id: I878fb7c3dc165c1a0d969955cae818ecbcff155d Signed-off-by: ligd --- net/local/local_accept.c | 1 + net/local/local_conn.c | 1 + net/local/local_connect.c | 3 --- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/net/local/local_accept.c b/net/local/local_accept.c index 8d4bec5e8fa..c951b8852a8 100644 --- a/net/local/local_accept.c +++ b/net/local/local_accept.c @@ -170,6 +170,7 @@ int local_accept(FAR struct socket *psock, FAR struct sockaddr *addr, conn->lc_psock = psock; #ifdef CONFIG_NET_LOCAL_SCM conn->lc_peer = client; + client->lc_peer = conn; #endif /* CONFIG_NET_LOCAL_SCM */ strncpy(conn->lc_path, client->lc_path, UNIX_PATH_MAX - 1); diff --git a/net/local/local_conn.c b/net/local/local_conn.c index abd787eb8ad..e1de6a53970 100644 --- a/net/local/local_conn.c +++ b/net/local/local_conn.c @@ -176,6 +176,7 @@ void local_free(FAR struct local_conn_s *conn) if (local_peerconn(conn) && conn->lc_peer) { conn->lc_peer->lc_peer = NULL; + conn->lc_peer = NULL; } #endif /* CONFIG_NET_LOCAL_SCM */ diff --git a/net/local/local_connect.c b/net/local/local_connect.c index 1c3f407ae68..b3aff310a1c 100644 --- a/net/local/local_connect.c +++ b/net/local/local_connect.c @@ -301,9 +301,6 @@ int psock_local_connect(FAR struct socket *psock, UNIX_PATH_MAX - 1); client->lc_path[UNIX_PATH_MAX - 1] = '\0'; client->lc_instance_id = local_generate_instance_id(); -#ifdef CONFIG_NET_LOCAL_SCM - client->lc_peer = conn; -#endif /* CONFIG_NET_LOCAL_SCM */ /* The client is now bound to an address */