From d79fd086d47e30ad7becd903af64af9ab662e6d6 Mon Sep 17 00:00:00 2001 From: heran yang Date: Sat, 27 May 2023 14:05:17 +0800 Subject: [PATCH] Close socket when failed to connect name pipe --- lib/searpc-named-pipe-transport.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/searpc-named-pipe-transport.c b/lib/searpc-named-pipe-transport.c index 6c0137e..9a3a6ec 100644 --- a/lib/searpc-named-pipe-transport.c +++ b/lib/searpc-named-pipe-transport.c @@ -333,6 +333,7 @@ int searpc_named_pipe_client_connect(SearpcNamedPipeClient *client) g_strlcpy (servaddr.sun_path, client->path, sizeof(servaddr.sun_path)); if (connect(client->pipe_fd, (struct sockaddr *)&servaddr, (socklen_t)sizeof(servaddr)) < 0) { g_warning ("pipe client failed to connect to server: %s\n", strerror(errno)); + close(client->pipe_fd); return -1; } @@ -364,6 +365,7 @@ int searpc_named_pipe_client_connect(SearpcNamedPipeClient *client) DWORD mode = PIPE_READMODE_MESSAGE; if (!SetNamedPipeHandleState(pipe_fd, &mode, NULL, NULL)) { G_WARNING_WITH_LAST_ERROR("Failed to set named pipe mode"); + CloseHandle (pipe_fd); return -1; }