diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index efaebfd94..90e8a2657 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -39,6 +39,7 @@ # endif # include # include +# include #else /*!HAVE_W32_SYSTEM*/ # include # include @@ -1558,6 +1559,11 @@ main (int argc, char **argv ) (void)csh_style; (void)nodetach; initialize_modules (); + if (_chdir("\\")) + { + log_error ("chdir to / failed: %s\n", strerror (errno)); + exit (1); + } #else /*!HAVE_W32_SYSTEM*/ diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c index 6eabca9c3..b19b4180d 100644 --- a/dirmngr/dirmngr.c +++ b/dirmngr/dirmngr.c @@ -30,9 +30,11 @@ #include #include #include -#ifndef HAVE_W32_SYSTEM -#include -#include +#ifdef HAVE_W32_SYSTEM +# include +#else +# include +# include #endif #include #include @@ -1268,6 +1270,11 @@ main (int argc, char **argv) #ifdef HAVE_W32_SYSTEM (void)csh_style; (void)nodetach; + if (_chdir("\\")) + { + log_error ("chdir to / failed: %s\n", strerror (errno)); + exit (1); + } pid = getpid (); es_printf ("set %s=%s;%lu;1\n", diff --git a/scd/scdaemon.c b/scd/scdaemon.c index 26e89dd8d..bbb043334 100644 --- a/scd/scdaemon.c +++ b/scd/scdaemon.c @@ -29,9 +29,11 @@ #include #include #include -#ifndef HAVE_W32_SYSTEM -#include -#include +#ifdef HAVE_W32_SYSTEM +# include +#else +# include +# include #endif /*HAVE_W32_SYSTEM*/ #include #include @@ -811,6 +813,11 @@ main (int argc, char **argv ) #ifdef HAVE_W32_SYSTEM (void)csh_style; (void)nodetach; + if (_chdir("\\")) + { + log_error ("chdir to / failed: %s\n", strerror (errno)); + exit (1); + } #else pid = fork (); if (pid == (pid_t)-1)