1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-01-03 12:11:33 +01:00

agent: --supervised mode improvements.

* agent/gpg-agent.c (map_supervised_socket): if the agent is running
  in --supervised mode and is not actually given LISTEN_FDNAMES
  directives, require at least fd 3 to be open for listening.
--
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
This commit is contained in:
Daniel Kahn Gillmor 2016-10-25 23:55:08 -04:00 committed by NIIBE Yutaka
parent 3b5f5e0eb0
commit 27f6d5b9f4

View File

@ -716,12 +716,19 @@ map_supervised_sockets (gnupg_fd_t *r_fd,
/* Assign the descriptors to the return values. */
if (!fdnames)
{
struct stat statbuf;
if (fd_count != 1)
log_error ("no LISTEN_FDNAMES and LISTEN_FDS (%d) != 1"
" in --supervised mode."
" (ignoring all sockets but the first one)\n",
fd_count);
if (fstat (3, &statbuf) == -1 && errno ==EBADF)
log_fatal ("file descriptor 3 must be valid in --supervised mode (as the "
"agent's standard socket) if LISTEN_FDNAMES is not set\n");
*r_fd = 3;
socket_name = get_socket_name (3);
if (!socket_name)
log_error ("cannot learn socket name for fd 3\n");
}
else if (fd_count != nfdnames)
{