diff options
author | gad <gad@FreeBSD.org> | 2004-12-19 05:14:29 +0000 |
---|---|---|
committer | gad <gad@FreeBSD.org> | 2004-12-19 05:14:29 +0000 |
commit | 4572e84e4fd67c3554fd3a18fac78a43793168dc (patch) | |
tree | 36954484fa126d14b78de7e9c809204b1b9ddbcb | |
parent | 8d0a2a10ef24a14fc274cea6ca31d758e9e3d5bb (diff) | |
download | FreeBSD-src-4572e84e4fd67c3554fd3a18fac78a43793168dc.zip FreeBSD-src-4572e84e4fd67c3554fd3a18fac78a43793168dc.tar.gz |
Call umask() before opening the lock-file for a queue, to make sure
the file will be created with the right access, if the call to open()
does create it. Also fix the other call to umask() to turn off
"write others", just as a matter of general safety.
PR: 74418
MFC after: 4 days
-rw-r--r-- | usr.sbin/lpr/lpd/printjob.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/usr.sbin/lpr/lpd/printjob.c b/usr.sbin/lpr/lpd/printjob.c index da99e1f..ae5ffc5 100644 --- a/usr.sbin/lpr/lpd/printjob.c +++ b/usr.sbin/lpr/lpd/printjob.c @@ -202,6 +202,7 @@ printjob(struct printer *pp) } if (stat(pp->lock_file, &stb) == 0 && (stb.st_mode & LFM_PRINT_DIS)) exit(0); /* printing disabled */ + umask(S_IWOTH); lfd = open(pp->lock_file, O_WRONLY|O_CREAT|O_EXLOCK|O_NONBLOCK, LOCK_FILE_MODE); if (lfd < 0) { @@ -1974,7 +1975,7 @@ pstatus(const struct printer *pp, const char *msg, ...) va_list ap; va_start(ap, msg); - umask(0); + umask(S_IWOTH); fd = open(pp->status_file, O_WRONLY|O_CREAT|O_EXLOCK, STAT_FILE_MODE); if (fd < 0) { syslog(LOG_ERR, "%s: open(%s): %m", pp->printer, |