diff options
author | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2008-09-10 22:30:50 +0000 |
---|---|---|
committer | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2008-09-10 22:30:50 +0000 |
commit | 49d8745278805ede5c41bae3c299e14ba40457bf (patch) | |
tree | 875bed78b8cff9d470bff3bf1feffcd8fdb4e869 /scheduler/log.c | |
parent | c5571a1d68de6e20e127c9745aa7a4dbf4e4474d (diff) | |
download | cups-49d8745278805ede5c41bae3c299e14ba40457bf.tar.gz |
Merge changes from CUPS 1.4svn-r7932.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@957 a1ca3aef-8c08-0410-bb20-df032aa958be
Diffstat (limited to 'scheduler/log.c')
-rw-r--r-- | scheduler/log.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/scheduler/log.c b/scheduler/log.c index dc2e23297..a0123bf8a 100644 --- a/scheduler/log.c +++ b/scheduler/log.c @@ -807,7 +807,20 @@ check_log_file(cups_file_t **lf, /* IO - Log file */ if (!strncmp(filename, CUPS_LOGDIR, strlen(CUPS_LOGDIR))) { - cupsdCheckPermissions(CUPS_LOGDIR, NULL, 0755, RunUser, Group, 1, -1); + /* + * Try updating the permissions of the containing log directory, using + * the log file permissions as a basis... + */ + + int log_dir_perm = 0300 | LogFilePerm; + /* LogFilePerm + owner write/search */ + if (log_dir_perm & 0040) + log_dir_perm |= 0010; /* Add group search */ + if (log_dir_perm & 0004) + log_dir_perm |= 0001; /* Add other search */ + + cupsdCheckPermissions(CUPS_LOGDIR, NULL, log_dir_perm, RunUser, Group, + 1, -1); *lf = cupsFileOpen(filename, "a"); } @@ -816,6 +829,10 @@ check_log_file(cups_file_t **lf, /* IO - Log file */ { syslog(LOG_ERR, "Unable to open log file \"%s\" - %s", filename, strerror(errno)); + + if (FatalErrors & CUPSD_FATAL_LOG) + cupsdEndProcess(getpid(), 0); + return (0); } } @@ -855,6 +872,9 @@ check_log_file(cups_file_t **lf, /* IO - Log file */ syslog(LOG_ERR, "Unable to open log file \"%s\" - %s", filename, strerror(errno)); + if (FatalErrors & CUPSD_FATAL_LOG) + cupsdEndProcess(getpid(), 0); + return (0); } |