diff options
author | Hakan Olsson <ho@cvs.openbsd.org> | 2004-06-21 18:34:12 +0000 |
---|---|---|
committer | Hakan Olsson <ho@cvs.openbsd.org> | 2004-06-21 18:34:12 +0000 |
commit | 63a4f01108afc0ae2e70aee5740e5a3535903084 (patch) | |
tree | a637730122567af7dc66abe0fb6227a2254757ef | |
parent | a15c11238e87efee5270274c7ca9493c9c70f888 (diff) |
Strip away umask bits in monitor_fopen(). hshoexer@ ok.
-rw-r--r-- | sbin/isakmpd/monitor.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sbin/isakmpd/monitor.c b/sbin/isakmpd/monitor.c index f26a75cbea2..fcf0bdc46af 100644 --- a/sbin/isakmpd/monitor.c +++ b/sbin/isakmpd/monitor.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor.c,v 1.23 2004/06/20 15:03:35 ho Exp $ */ +/* $OpenBSD: monitor.c,v 1.24 2004/06/21 18:34:11 ho Exp $ */ /* * Copyright (c) 2003 Håkan Olsson. All rights reserved. @@ -195,7 +195,8 @@ FILE * monitor_fopen(const char *path, const char *mode) { FILE *fp; - int fd, flags = 0, mask, saved_errno; + int fd, flags = 0, saved_errno; + mode_t mask, cur_umask; /* Only the child process is supposed to run this. */ if (m_state.pid) @@ -217,7 +218,10 @@ monitor_fopen(const char *path, const char *mode) log_fatal("monitor_fopen: bad call"); } + cur_umask = umask(0); + (void)umask(cur_umask); mask = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; + mask &= ~cur_umask; fd = monitor_open(path, flags, mask); if (fd < 0) |