From 262b5730c044eda3faaea77e03716f0c522ee8e4 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 22 Feb 2005 23:11:01 +0000 Subject: [PATCH] * sysdeps/unix/sysv/linux/libc_fatal.c (__libc_message): Use non-cancelable I/O functions. --- ChangeLog | 5 +++++ sysdeps/unix/sysv/linux/libc_fatal.c | 13 +++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 02c97da4e3..7ec8f1313a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-02-22 Ulrich Drepper + + * sysdeps/unix/sysv/linux/libc_fatal.c (__libc_message): Use + non-cancelable I/O functions. + 2005-02-22 Jakub Jelinek * nscd/nscd-client.h: Include sys/uio.h. diff --git a/sysdeps/unix/sysv/linux/libc_fatal.c b/sysdeps/unix/sysv/linux/libc_fatal.c index 88a1120dfa..c7fac6ab51 100644 --- a/sysdeps/unix/sysv/linux/libc_fatal.c +++ b/sysdeps/unix/sysv/linux/libc_fatal.c @@ -151,17 +151,18 @@ __libc_message (int do_abort, const char *fmt, ...) if (n > 2) { #define strnsize(str) str, strlen (str) - write (fd, strnsize ("======= Backtrace: =========\n")); +#define writestr(str) write_not_cancel (fd, str) + writestr (strnsize ("======= Backtrace: =========\n")); __backtrace_symbols_fd (addrs + 1, n - 1, fd); - write (fd, strnsize ("======= Memory map: ========\n")); - int fd2 = open ("/proc/self/maps", O_RDONLY); + writestr (strnsize ("======= Memory map: ========\n")); + int fd2 = open_not_cancel_2 ("/proc/self/maps", O_RDONLY); char buf[1024]; ssize_t n2; - while ((n2 = read (fd2, buf, sizeof (buf))) > 0) - if (write (fd, buf, n2) != n2) + while ((n2 = read_not_cancel (fd2, buf, sizeof (buf))) > 0) + if (write_not_cancel (fd, buf, n2) != n2) break; - close (fd2); + close_not_cancel_no_status (fd2); } }