From: Miroslav Lichvar Date: Thu, 28 Nov 2024 13:45:23 +0000 (+0100) Subject: nts: close socket in helper process on exit X-Git-Tag: 4.7-pre1~62 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7196943f112c3087bcdf04d0106213a30d177a27;p=thirdparty%2Fchrony.git nts: close socket in helper process on exit Close the socket used for receiving helper requests before exit to avoid another valgrind error. --- diff --git a/nts_ke_server.c b/nts_ke_server.c index 6fe28be7..6dd6251f 100644 --- a/nts_ke_server.c +++ b/nts_ke_server.c @@ -702,7 +702,7 @@ key_timeout(void *arg) /* ================================================== */ static void -run_helper(uid_t uid, gid_t gid, int scfilter_level) +run_helper(uid_t uid, gid_t gid, int scfilter_level, int sock_fd) { LOG_Severity log_severity; @@ -729,10 +729,15 @@ run_helper(uid_t uid, gid_t gid, int scfilter_level) if (scfilter_level != 0) SYS_EnableSystemCallFilter(scfilter_level, SYS_NTSKE_HELPER); + SCH_AddFileHandler(sock_fd, SCH_FILE_INPUT, handle_helper_request, NULL); + SCH_MainLoop(); DEBUG_LOG("Helper exiting"); + SCH_RemoveFileHandler(sock_fd); + close(sock_fd); + NKS_Finalise(); SCK_Finalise(); SYS_Finalise(); @@ -792,9 +797,8 @@ NKS_PreInitialise(uid_t uid, gid_t gid, int scfilter_level) LOG_CloseParentFd(); SCK_CloseSocket(sock_fd1); - SCH_AddFileHandler(sock_fd2, SCH_FILE_INPUT, handle_helper_request, NULL); - run_helper(uid, gid, scfilter_level); + run_helper(uid, gid, scfilter_level, sock_fd2); } SCK_CloseSocket(sock_fd2);