diff options
Diffstat (limited to 'libio/fileops.c')
-rw-r--r-- | libio/fileops.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libio/fileops.c b/libio/fileops.c index aae02f001c..0faf01f09f 100644 --- a/libio/fileops.c +++ b/libio/fileops.c @@ -47,6 +47,7 @@ # include "../iconv/gconv_charset.h" # include "../iconv/gconv_int.h" # include <shlib-compat.h> +# include <not-cancel.h> #endif #ifndef errno extern int errno; @@ -1240,14 +1241,18 @@ _IO_file_close_mmap (fp) /* In addition to closing the file descriptor we have to unmap the file. */ (void) __munmap (fp->_IO_buf_base, fp->_IO_buf_end - fp->_IO_buf_base); fp->_IO_buf_base = fp->_IO_buf_end = NULL; - return close (fp->_fileno); + /* Cancelling close should be avoided if possible since it leaves an + unrecoverable state behind. */ + return close_not_cancel (fp->_fileno); } int _IO_file_close (fp) _IO_FILE *fp; { - return close (fp->_fileno); + /* Cancelling close should be avoided if possible since it leaves an + unrecoverable state behind. */ + return close_not_cancel (fp->_fileno); } INTDEF(_IO_file_close) |