From 22d82f9f46f2edd819a1b328883a7330ca7e1508 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Sun, 17 Aug 2003 17:12:18 +0000 Subject: * errno.cc (errmap): Map ERROR_INVALID_BLOCK_LENGTH to EIO. * fhandler_raw.cc (fhandler_dev_raw::raw_read): Set more accurate errnos instead of EACCES. (fhandler_dev_raw::raw_write): Ditto. --- winsup/cygwin/fhandler_raw.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'winsup/cygwin/fhandler_raw.cc') diff --git a/winsup/cygwin/fhandler_raw.cc b/winsup/cygwin/fhandler_raw.cc index ebd8ef0cc..42f84073d 100644 --- a/winsup/cygwin/fhandler_raw.cc +++ b/winsup/cygwin/fhandler_raw.cc @@ -202,7 +202,10 @@ fhandler_dev_raw::raw_read (void *ptr, size_t& ulen) ret = writebuf (); if (ret) { - set_errno (is_eom (ret) ? ENOSPC : EACCES); + if (is_eom (ret)) + set_errno (ENOSPC); + else + __seterrno (); goto err; } @@ -267,8 +270,7 @@ fhandler_dev_raw::raw_read (void *ptr, size_t& ulen) { if (!is_eof (ret) && !is_eom (ret)) { - debug_printf ("return -1, set errno to EACCES"); - set_errno (EACCES); + __seterrno (); goto err; } @@ -309,8 +311,7 @@ fhandler_dev_raw::raw_read (void *ptr, size_t& ulen) { if (!is_eof (ret) && !is_eom (ret)) { - debug_printf ("return -1, set errno to EACCES"); - set_errno (EACCES); + __seterrno (); goto err; } if (bytes_read) @@ -442,7 +443,7 @@ fhandler_dev_raw::raw_write (const void *ptr, size_t len) has_written = 1; if (!is_eom (ret)) { - set_errno (EACCES); + __seterrno (); return -1; } eom_detected = 1; -- cgit v1.2.3