mirror of
git://git.gnupg.org/gnupg.git
synced 2025-04-13 22:21:09 +02: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:
parent
3b5f5e0eb0
commit
27f6d5b9f4
@ -716,12 +716,19 @@ map_supervised_sockets (gnupg_fd_t *r_fd,
|
|||||||
/* Assign the descriptors to the return values. */
|
/* Assign the descriptors to the return values. */
|
||||||
if (!fdnames)
|
if (!fdnames)
|
||||||
{
|
{
|
||||||
|
struct stat statbuf;
|
||||||
if (fd_count != 1)
|
if (fd_count != 1)
|
||||||
log_error ("no LISTEN_FDNAMES and LISTEN_FDS (%d) != 1"
|
log_error ("no LISTEN_FDNAMES and LISTEN_FDS (%d) != 1"
|
||||||
" in --supervised mode."
|
" in --supervised mode."
|
||||||
" (ignoring all sockets but the first one)\n",
|
" (ignoring all sockets but the first one)\n",
|
||||||
fd_count);
|
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;
|
*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)
|
else if (fd_count != nfdnames)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user