mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
* misc/syslog.c (openlog_internal): Use SOCK_CLOEXEC if possible.
This commit is contained in:
parent
72112b0cb4
commit
c0216dfc62
@ -1,5 +1,7 @@
|
||||
2008-07-26 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* misc/syslog.c (openlog_internal): Use SOCK_CLOEXEC if possible.
|
||||
|
||||
* malloc/mtrace.c (mtrace): Use 'e' flag in fopen call. Drop
|
||||
F_SETFD use if we know fopen set the flag.
|
||||
|
||||
|
@ -348,10 +348,35 @@ openlog_internal(const char *ident, int logstat, int logfac)
|
||||
(void)strncpy(SyslogAddr.sun_path, _PATH_LOG,
|
||||
sizeof(SyslogAddr.sun_path));
|
||||
if (LogStat & LOG_NDELAY) {
|
||||
if ((LogFile = __socket(AF_UNIX, LogType, 0))
|
||||
== -1)
|
||||
#ifdef SOCK_CLOEXEC
|
||||
# ifndef __ASSUME_SOCK_CLOEXEC
|
||||
if (__have_sock_cloexec >= 0) {
|
||||
# endif
|
||||
LogFile = __socket(AF_UNIX,
|
||||
LogType
|
||||
| SOCK_CLOEXEC, 0);
|
||||
# ifndef __ASSUME_SOCK_CLOEXEC
|
||||
if (__have_sock_cloexec == 0)
|
||||
__have_sock_cloexec
|
||||
= (LogFile != -1
|
||||
|| errno != EINVAL);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
#ifndef __ASSUME_SOCK_CLOEXEC
|
||||
# ifdef SOCK_CLOEXEC
|
||||
if (__have_sock_cloexec < 0)
|
||||
# endif
|
||||
LogFile = __socket(AF_UNIX, LogType, 0);
|
||||
#endif
|
||||
if (LogFile == -1)
|
||||
return;
|
||||
(void)__fcntl(LogFile, F_SETFD, 1);
|
||||
#ifndef __ASSUME_SOCK_CLOEXEC
|
||||
# ifdef SOCK_CLOEXEC
|
||||
if (__have_sock_cloexec < 0)
|
||||
# endif
|
||||
__fcntl(LogFile, F_SETFD, FD_CLOEXEC);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
if (LogFile != -1 && !connected)
|
||||
|
Loading…
Reference in New Issue
Block a user