summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--agent/gpg-agent.c8
-rw-r--r--common/exechelp-w32.c13
2 files changed, 14 insertions, 7 deletions
diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c
index f4ed6c5c4..724b55a30 100644
--- a/agent/gpg-agent.c
+++ b/agent/gpg-agent.c
@@ -303,8 +303,10 @@ static int putty_support;
#endif /*HAVE_W32_SYSTEM*/
/* The list of open file descriptors at startup. Note that this list
- has been allocated using the standard malloc. */
+ * has been allocated using the standard malloc. */
+#ifndef HAVE_W32_SYSTEM
static int *startup_fd_list;
+#endif
/* The signal mask at startup and a flag telling whether it is valid. */
#ifdef HAVE_SIGPROCMASK
@@ -949,8 +951,10 @@ main (int argc, char **argv )
/* Before we do anything else we save the list of currently open
file descriptors and the signal mask. This info is required to
- do the exec call properly. */
+ do the exec call properly. We don't need it on Windows. */
+#ifndef HAVE_W32_SYSTEM
startup_fd_list = get_all_open_fds ();
+#endif /*!HAVE_W32_SYSTEM*/
#ifdef HAVE_SIGPROCMASK
if (!sigprocmask (SIG_UNBLOCK, NULL, &startup_signal_mask))
startup_signal_mask_valid = 1;
diff --git a/common/exechelp-w32.c b/common/exechelp-w32.c
index a7a6db369..e79ee5b14 100644
--- a/common/exechelp-w32.c
+++ b/common/exechelp-w32.c
@@ -128,11 +128,14 @@ close_all_fds (int first, int *except)
/* Returns an array with all currently open file descriptors. The end
- of the array is marked by -1. The caller needs to release this
- array using the *standard free* and not with xfree. This allow the
- use of this function right at startup even before libgcrypt has
- been initialized. Returns NULL on error and sets ERRNO
- accordingly. */
+ * of the array is marked by -1. The caller needs to release this
+ * array using the *standard free* and not with xfree. This allow the
+ * use of this function right at startup even before libgcrypt has
+ * been initialized. Returns NULL on error and sets ERRNO
+ * accordingly. Note that fstat prints a warning to DebugView for all
+ * invalid fds which is a bit annoying. We actually do not need this
+ * function in real code (close_all_fds is a dummy anyway) but we keep
+ * it for use by t-exechelp.c. */
int *
get_all_open_fds (void)
{