close sockets/fds on disconnect and prevent fd leaks - teed - A multiplex relay tee(1) daemon.
(HTM) git clone git://bitreich.org/teed git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/teed
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
(DIR) LICENSE
---
(DIR) commit c9671740957f58aa168262f3e76ad2f72542f05b
(DIR) parent 22ed6e7883ecd3f6e3ade985a0963604ba800ade
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Mon, 14 Aug 2023 14:23:53 +0200
close sockets/fds on disconnect and prevent fd leaks
Signed-off-by: Christoph Lohmann <20h@r-36.net>
Diffstat:
M teed.c | 2 ++
1 file changed, 2 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/teed.c b/teed.c
@@ -265,6 +265,7 @@ main(int argc, char *argv[])
recvl = read(*(int *)e->data, recvbuf,
sizeof(recvbuf));
if (recvl <= 0) {
+ close(*(int *)e->data);
e = llist_del(&rfds, e);
if (e == NULL)
break;
@@ -275,6 +276,7 @@ main(int argc, char *argv[])
sendl = recvl;
while (sendl > 0) {
if ((sent = write(*(int *)qe->data, sendbufi, sendl)) < 0) {
+ close(*(int *)qe->data);
qe = llist_del(&wfds, qe);
break;
}