* [B.A.T.M.A.N.] [PATCH] alfred: Close socket after connect failure
@ 2015-02-05 14:47 Sven Eckelmann
2015-02-05 18:09 ` Simon Wunderlich
0 siblings, 1 reply; 2+ messages in thread
From: Sven Eckelmann @ 2015-02-05 14:47 UTC (permalink / raw)
To: b.a.t.m.a.n; +Cc: Sven Eckelmann
The socket is still using one file descriptor of the process when the
connection fails. This fd leak is non-problematic in the current client process
code because the client would be closed in this situation anyway and therefore
the socket would be closed when the process is stopped. But people using this
as example code may not stop the process on this error. The unclosed and unused
sockets would accumulate and the process would hit the limit for open file
descriptors.
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
gpsd/alfred-gpsd.c | 2 ++
unix_sock.c | 2 ++
vis/vis.c | 2 ++
3 files changed, 6 insertions(+)
diff --git a/gpsd/alfred-gpsd.c b/gpsd/alfred-gpsd.c
index d736ad1..4bc18ae 100644
--- a/gpsd/alfred-gpsd.c
+++ b/gpsd/alfred-gpsd.c
@@ -40,6 +40,8 @@ static int alfred_open_sock(struct globals *globals)
if (connect(globals->unix_sock, (struct sockaddr *)&addr,
sizeof(addr)) < 0) {
+ close(globals->unix_sock);
+ globals->unix_sock = -1;
perror("can't connect to unix socket");
return -1;
}
diff --git a/unix_sock.c b/unix_sock.c
index 8a99327..693b55d 100644
--- a/unix_sock.c
+++ b/unix_sock.c
@@ -84,6 +84,8 @@ int unix_sock_open_client(struct globals *globals)
if (connect(globals->unix_sock, (struct sockaddr *)&addr,
sizeof(addr)) < 0) {
+ close(globals->unix_sock);
+ globals->unix_sock = -1;
perror("can't connect to unix socket");
return -1;
}
diff --git a/vis/vis.c b/vis/vis.c
index 3dd5c8c..1916ea3 100644
--- a/vis/vis.c
+++ b/vis/vis.c
@@ -173,6 +173,8 @@ static int alfred_open_sock(struct globals *globals)
if (connect(globals->unix_sock, (struct sockaddr *)&addr,
sizeof(addr)) < 0) {
+ close(globals->unix_sock);
+ globals->unix_sock = -1;
perror("can't connect to unix socket");
return -1;
}
--
2.1.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-02-05 18:09 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-05 14:47 [B.A.T.M.A.N.] [PATCH] alfred: Close socket after connect failure Sven Eckelmann
2015-02-05 18:09 ` Simon Wunderlich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox