diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index 538ff0874..90b0eaf35 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -1865,6 +1865,10 @@ create_server_socket (char *name, int primary, int cygwin, agent_exit (2); } + if (gnupg_chmod (unaddr->sun_path, "-rwx")) + log_error (_("can't set permissions of '%s': %s\n"), + unaddr->sun_path, strerror (errno)); + if (listen (FD2INT(fd), 5 ) == -1) { log_error (_("listen() failed: %s\n"), strerror (errno)); diff --git a/common/sysutils.c b/common/sysutils.c index d82eb8e26..0f7b7f5cf 100644 --- a/common/sysutils.c +++ b/common/sysutils.c @@ -628,7 +628,7 @@ gnupg_mkdir (const char *name, const char *modestr) } -/* A wrapper around mkdir which takes a string for the mode argument. +/* A wrapper around chmod which takes a string for the mode argument. This makes it easier to handle the mode argument which is not defined on all systems. The format of the modestring is the same as for gnupg_mkdir. */ diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c index bc71a4072..7e629db96 100644 --- a/dirmngr/dirmngr.c +++ b/dirmngr/dirmngr.c @@ -1183,6 +1183,10 @@ main (int argc, char **argv) } cleanup_socket = 1; + if (gnupg_chmod (serv_addr.sun_path, "-rwx")) + log_error (_("can't set permissions of '%s': %s\n"), + serv_addr.sun_path, strerror (errno)); + if (listen (FD2INT (fd), 5) == -1) { log_error (_("listen() failed: %s\n"), strerror (errno)); diff --git a/scd/scdaemon.c b/scd/scdaemon.c index 8303acc3c..9c11cad46 100644 --- a/scd/scdaemon.c +++ b/scd/scdaemon.c @@ -1112,6 +1112,10 @@ create_server_socket (const char *name, char **r_redir_name, scd_exit (2); } + if (gnupg_chmod (unaddr->sun_path, "-rwx")) + log_error (_("can't set permissions of '%s': %s\n"), + unaddr->sun_path, strerror (errno)); + if (listen (FD2INT(fd), 5 ) == -1) { log_error (_("listen() failed: %s\n"),