From 6d54a8a93311b6bb0eedae79cf4bde01d0955708 Mon Sep 17 00:00:00 2001 From: Sam Varshavchik Date: Sat, 15 Jan 2022 09:35:42 -0500 Subject: Set an ALARM timer to kill libcouriertls. --- tcpd/starttls.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tcpd/starttls.c') diff --git a/tcpd/starttls.c b/tcpd/starttls.c index 76fcf3b..6e6229b 100644 --- a/tcpd/starttls.c +++ b/tcpd/starttls.c @@ -20,6 +20,7 @@ #include #include #include +#include #if HAVE_DIRENT_H #include #define NAMLEN(dirent) strlen((dirent)->d_name) @@ -526,6 +527,21 @@ static int connect_completed(ssl_handle ssl, int fd) return (1); } +static void child_handler() +{ + alarm(10); +} + +static void trapexit() +{ + struct sigaction sa; + + memset(&sa, 0, sizeof(sa)); + + sa.sa_handler=child_handler; + sigaction(SIGCHLD, &sa, NULL); +} + static int dossl(int fd, int argn, int argc, char **argv) { ssl_context ctx; @@ -563,6 +579,7 @@ static int dossl(int fd, int argn, int argc, char **argv) } startclient(argn, argc, argv, fd, &stdin_fd, &stdout_fd); + trapexit(); if (username) libmail_changeusername(username, 0); -- cgit v1.2.3