summaryrefslogtreecommitdiff
path: root/misc/syslog.c
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-04-10 23:29:40 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-04-15 11:32:40 -0300
commit7f3ab33f20f19ad5b8fdd40bd77d35a0da355347 (patch)
treee4323f5a2d89125fb96b9691d91d85b79740ae33 /misc/syslog.c
parentded3cef36135afa3510ce3c12b982f659b8ea244 (diff)
downloadglibc-7f3ab33f20f19ad5b8fdd40bd77d35a0da355347.tar.gz
misc: syslog: Use CLOC_EXEC with _PATH_CONSOLE (BZ #17145)
The syslog open the '/dev/console' for LOG_CONS without O_CLOEXEC, which might leak in multithread programs that call fork. Checked on x86_64-linux-gnu.
Diffstat (limited to 'misc/syslog.c')
-rw-r--r--misc/syslog.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/misc/syslog.c b/misc/syslog.c
index 18330a373b..e228860d22 100644
--- a/misc/syslog.c
+++ b/misc/syslog.c
@@ -284,7 +284,8 @@ __vsyslog_internal(int pri, const char *fmt, va_list ap,
* syslogd failure.
*/
if (LogStat & LOG_CONS &&
- (fd = __open(_PATH_CONSOLE, O_WRONLY|O_NOCTTY, 0)) >= 0)
+ (fd = __open(_PATH_CONSOLE, O_WRONLY|O_NOCTTY|O_CLOEXEC,
+ 0)) >= 0)
{
__dprintf (fd, "%s\r\n", buf + msgoff);
(void)__close(fd);