summaryrefslogtreecommitdiff
path: root/lib/log.c
diff options
context:
space:
mode:
authorgdt <gdt>2003-12-22 20:15:53 +0000
committergdt <gdt>2003-12-22 20:15:53 +0000
commitaa593d5e2638566ead1e69381e60639550991ff2 (patch)
treec865f642c1029fa47b8fc6cc86302468b9b2aef4 /lib/log.c
parent47ce02a8f12134a6ba515fbf1d2b9276e39d4c06 (diff)
2003-12-22 Christian Hammers <ch@lathspell.de>
* configure.ac (and everywhere a regular file is opened for writing): use file permissions from configure rather than compiled-in umask.
Diffstat (limited to 'lib/log.c')
-rw-r--r--lib/log.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/log.c b/lib/log.c
index 88e1dbf0..aedab3c6 100644
--- a/lib/log.c
+++ b/lib/log.c
@@ -365,6 +365,7 @@ int
zlog_set_file (struct zlog *zl, int flags, char *filename)
{
FILE *fp;
+ mode_t oldumask;
/* There is opend file. */
zlog_reset_file (zl);
@@ -374,9 +375,14 @@ zlog_set_file (struct zlog *zl, int flags, char *filename)
zl = zlog_default;
/* Open file. */
+ oldumask = umask (0777 & ~LOGFILE_MASK);
fp = fopen (filename, "a");
if (fp == NULL)
- return 0;
+ {
+ umask(oldumask);
+ return 0;
+ }
+ umask(oldumask);
/* Set flags. */
zl->filename = strdup (filename);
@@ -421,9 +427,16 @@ zlog_rotate (struct zlog *zl)
if (zl->filename)
{
+ mode_t oldumask;
+
+ oldumask = umask (0777 & ~LOGFILE_MASK);
fp = fopen (zl->filename, "a");
if (fp == NULL)
- return -1;
+ {
+ umask(oldumask);
+ return -1;
+ }
+ umask(oldumask);
zl->fp = fp;
}