1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00
* malloc/malloc.c (malloc_printerr): Use syslog if writev failed.
This commit is contained in:
Ulrich Drepper
2004-09-23 04:45:09 +00:00
parent be27d08c05
commit 54915e9e37
2 changed files with 10 additions and 1 deletions

View File

@ -285,6 +285,8 @@ extern "C" {
/* For writev and struct iovec. */
#include <sys/uio.h>
/* For syslog. */
#include <sys/syslog.h>
/*
Debugging:
@ -5467,7 +5469,12 @@ malloc_printerr(int action, const char *str, void *ptr)
iov[n].iov_base = cp;
iov[n].iov_len = &buf[sizeof (buf) - 1] - cp;
++n;
TEMP_FAILURE_RETRY (__writev (STDERR_FILENO, iov, n));
if (TEMP_FAILURE_RETRY (__writev (STDERR_FILENO, iov, n)) == -1
&& errno == EBADF)
/* Standard error is not opened. Try using syslog. */
syslog (LOG_ERR, "%s%s%s", (char *) iov[0].iov_base,
(char *) iov[1].iov_base,
n == 3 ? (const char *) iov[2].iov_base : "");
}
if (action & 2)
abort ();