agent: Fix sock_inotify_fd handling.

* agent/gpg-agent.c (handle_connections): Also check SOCK_INOTIFY_FD
when spawning check_onw_socket_thread.  When removal of the socket
is detected, do same as AGENT_PROBLEM_SOCKET_TAKEOVER.

--

GnuPG-bug-id: 6692
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2023-09-04 10:34:42 +09:00
parent 5e47d5edd8
commit 28364affa6
No known key found for this signature in database
GPG Key ID: 640114AF89DE6054
1 changed files with 5 additions and 2 deletions

View File

@ -3055,7 +3055,7 @@ handle_connections (gnupg_fd_t listen_fd,
have_homedir_inotify = 1;
#if CHECK_OWN_SOCKET_INTERVAL > 0
if (!disable_check_own_socket)
if (!disable_check_own_socket && sock_inotify_fd == -1)
{
npth_t thread;
@ -3255,7 +3255,10 @@ handle_connections (gnupg_fd_t listen_fd,
&& FD_ISSET (sock_inotify_fd, &read_fdset)
&& gnupg_inotify_has_name (sock_inotify_fd, GPG_AGENT_SOCK_NAME))
{
shutdown_pending = 1;
/* We may not remove the socket (if any), as it may be now
in use by another server. */
inhibit_socket_removal = 1;
shutdown_pending = 2;
close (sock_inotify_fd);
sock_inotify_fd = -1;
log_info ("socket file has been removed - shutting down\n");