diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-02-22 23:11:01 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-02-22 23:11:01 +0000 |
commit | 262b5730c044eda3faaea77e03716f0c522ee8e4 (patch) | |
tree | e74346100f78c3b2ef408087028b2b8fc3cbee82 /sysdeps | |
parent | d2dc7d84732fc832aaac4891f84d38e3748f1af7 (diff) | |
download | glibc-262b5730c044eda3faaea77e03716f0c522ee8e4.tar.gz glibc-262b5730c044eda3faaea77e03716f0c522ee8e4.tar.xz glibc-262b5730c044eda3faaea77e03716f0c522ee8e4.zip |
* sysdeps/unix/sysv/linux/libc_fatal.c (__libc_message): Use
non-cancelable I/O functions.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/unix/sysv/linux/libc_fatal.c | 13 |
1 files changed, 7 insertions, 6 deletions
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); } } |