close sockets/fds on disconnect and prevent fd leaks - teed - A multiplex relay tee(1) daemon.
HTML 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
HTML 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;
}