chiark
/
gitweb
/
~mdw
/
tripe
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
09cedbd
)
server/admin.c (a_init): Restore the old umask after creating the socket.
author
Mark Wooding
<mdw@distorted.org.uk>
Wed, 14 Mar 2012 19:18:07 +0000
(19:18 +0000)
committer
Mark Wooding
<mdw@distorted.org.uk>
Wed, 14 Mar 2012 21:09:26 +0000
(21:09 +0000)
server/admin.c
patch
|
blob
|
blame
|
history
diff --git
a/server/admin.c
b/server/admin.c
index 228cce1565ee906d7f5c4bf4f674055188e2321f..7aa1678d33143cb90b21d1dafc06f08e00e36330 100644
(file)
--- a/
server/admin.c
+++ b/
server/admin.c
@@
-2226,6
+2226,7
@@
void a_init(const char *name, uid_t u, gid_t g)
struct sockaddr_un sun;
struct sigaction sa;
size_t sz;
struct sockaddr_un sun;
struct sigaction sa;
size_t sz;
+ mode_t omask;
/* --- Create services table --- */
/* --- Create services table --- */
@@
-2243,7
+2244,7
@@
void a_init(const char *name, uid_t u, gid_t g)
/* --- Attempt to bind to the socket --- */
/* --- Attempt to bind to the socket --- */
- umask(0077);
+
omask =
umask(0077);
again:
if ((fd = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
die(EXIT_FAILURE, "couldn't create socket: %s", strerror(errno));
again:
if ((fd = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
die(EXIT_FAILURE, "couldn't create socket: %s", strerror(errno));
@@
-2280,6
+2281,7
@@
again:
"admin: failed to give away socket: %s",
strerror(errno)); )
}
"admin: failed to give away socket: %s",
strerror(errno)); )
}
+ umask(omask);
fdflags(fd, O_NONBLOCK, O_NONBLOCK, FD_CLOEXEC, FD_CLOEXEC);
if (listen(fd, 5))
die(EXIT_FAILURE, "couldn't listen on socket: %s", strerror(errno));
fdflags(fd, O_NONBLOCK, O_NONBLOCK, FD_CLOEXEC, FD_CLOEXEC);
if (listen(fd, 5))
die(EXIT_FAILURE, "couldn't listen on socket: %s", strerror(errno));