From: Denis Vlasenko Date: Wed, 4 Mar 2009 01:33:22 +0000 (-0000) Subject: syslogd: fix new log file mode 0600 -> 0666 (as usual, affected by umask) X-Git-Tag: 1_13_3 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=bc7177187f6b4f32c2f9562358294dfc7b521f67;p=oweals%2Fbusybox.git syslogd: fix new log file mode 0600 -> 0666 (as usual, affected by umask) --- diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c index 38ea3d7ff..f624eb7f6 100644 --- a/sysklogd/syslogd.c +++ b/sysklogd/syslogd.c @@ -301,17 +301,23 @@ static void log_locally(time_t now, char *msg) } #endif if (G.logFD >= 0) { + /* Reopen log file every second. This allows admin + * to delete the file and not worry about restarting us. + * This costs almost nothing since it happens + * _at most_ once a second. + */ if (!now) now = time(NULL); if (G.last_log_time != now) { - G.last_log_time = now; /* reopen log file every second */ + G.last_log_time = now; close(G.logFD); goto reopen; } } else { reopen: - G.logFD = device_open(G.logFilePath, O_WRONLY | O_CREAT - | O_NOCTTY | O_APPEND | O_NONBLOCK); + G.logFD = open(G.logFilePath, O_WRONLY | O_CREAT + | O_NOCTTY | O_APPEND | O_NONBLOCK, + 0666); if (G.logFD < 0) { /* cannot open logfile? - print to /dev/console then */ int fd = device_open(DEV_CONSOLE, O_WRONLY | O_NOCTTY | O_NONBLOCK);