w32: Also change the directory on daemon startup.

* agent/gpg-agent.c (main): Always to the chdir.
* dirmngr/dirmngr.c (main): Ditto.
* scd/scdaemon.c (main): Ditto.
--

Note that only dirmngr did not call the chdir with --no-detach.  thus
we kept it this way.

Tested gpg-agent by checking the properties shown by procexp.

Gnupg-bug-id: 2670
Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2017-07-25 12:52:33 +02:00
parent 226f143ca0
commit 0ef50340ef
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
3 changed files with 14 additions and 11 deletions

View File

@ -1708,13 +1708,6 @@ main (int argc, char **argv )
opt.running_detached = 1; opt.running_detached = 1;
} }
if (gnupg_chdir (gnupg_daemon_rootdir ()))
{
log_error ("chdir to '%s' failed: %s\n",
gnupg_daemon_rootdir (), strerror (errno));
exit (1);
}
{ {
struct sigaction sa; struct sigaction sa;
@ -1725,6 +1718,13 @@ main (int argc, char **argv )
} }
#endif /*!HAVE_W32_SYSTEM*/ #endif /*!HAVE_W32_SYSTEM*/
if (gnupg_chdir (gnupg_daemon_rootdir ()))
{
log_error ("chdir to '%s' failed: %s\n",
gnupg_daemon_rootdir (), strerror (errno));
exit (1);
}
log_info ("%s %s started\n", strusage(11), strusage(13) ); log_info ("%s %s started\n", strusage(11), strusage(13) );
handle_connections (fd, fd_extra, fd_browser, fd_ssh); handle_connections (fd, fd_extra, fd_browser, fd_ssh);
assuan_sock_close (fd); assuan_sock_close (fd);

View File

@ -1351,15 +1351,18 @@ main (int argc, char **argv)
log_set_prefix (NULL, oldflags | GPGRT_LOG_RUN_DETACHED); log_set_prefix (NULL, oldflags | GPGRT_LOG_RUN_DETACHED);
opt.running_detached = 1; opt.running_detached = 1;
}
#endif
if (!nodetach )
{
if (gnupg_chdir (gnupg_daemon_rootdir ())) if (gnupg_chdir (gnupg_daemon_rootdir ()))
{ {
log_error ("chdir to '%s' failed: %s\n", log_error ("chdir to '%s' failed: %s\n",
gnupg_daemon_rootdir (), strerror (errno)); gnupg_daemon_rootdir (), strerror (errno));
dirmngr_exit (1); dirmngr_exit (1);
} }
} }
#endif
thread_init (); thread_init ();
cert_cache_init (hkp_cacert_filenames); cert_cache_init (hkp_cacert_filenames);

View File

@ -908,6 +908,8 @@ main (int argc, char **argv )
sigaction (SIGPIPE, &sa, NULL); sigaction (SIGPIPE, &sa, NULL);
} }
#endif /*!HAVE_W32_SYSTEM*/
if (gnupg_chdir (gnupg_daemon_rootdir ())) if (gnupg_chdir (gnupg_daemon_rootdir ()))
{ {
log_error ("chdir to '%s' failed: %s\n", log_error ("chdir to '%s' failed: %s\n",
@ -915,8 +917,6 @@ main (int argc, char **argv )
exit (1); exit (1);
} }
#endif /*!HAVE_W32_SYSTEM*/
handle_connections (fd); handle_connections (fd);
close (fd); close (fd);