summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/util_sock.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/source3/lib/util_sock.c b/source3/lib/util_sock.c
index eb38055d19..54286b3f31 100644
--- a/source3/lib/util_sock.c
+++ b/source3/lib/util_sock.c
@@ -1237,14 +1237,17 @@ int create_pipe_sock(const char *socket_dir,
#ifdef HAVE_UNIXSOCKET
struct sockaddr_un sunaddr;
bool ok;
- int sock;
+ int sock = -1;
+ mode_t old_umask;
char *path = NULL;
+ old_umask = umask(0);
+
ok = directory_create_or_exist_strict(socket_dir,
sec_initial_uid(),
dir_perms);
if (!ok) {
- return -1;
+ goto out_close;
}
/* Create the socket file */
@@ -1273,6 +1276,7 @@ int create_pipe_sock(const char *socket_dir,
SAFE_FREE(path);
+ umask(old_umask);
return sock;
out_close:
@@ -1280,6 +1284,7 @@ out_close:
if (sock != -1)
close(sock);
+ umask(old_umask);
return -1;
#else