OSDN Git Service

* errno.cc (errmap): Map ERROR_INVALID_BLOCK_LENGTH to EIO.
authorcorinna <corinna>
Sun, 17 Aug 2003 17:12:18 +0000 (17:12 +0000)
committercorinna <corinna>
Sun, 17 Aug 2003 17:12:18 +0000 (17:12 +0000)
* fhandler_raw.cc (fhandler_dev_raw::raw_read): Set more accurate
errnos instead of EACCES.
(fhandler_dev_raw::raw_write): Ditto.

winsup/cygwin/ChangeLog
winsup/cygwin/errno.cc
winsup/cygwin/fhandler_raw.cc

index 6debe68..b8eca83 100644 (file)
@@ -1,3 +1,10 @@
+2003-08-17  Corinna Vinschen  <corinna@vinschen.de>
+
+       * 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.
+
 2003-08-17  Christopher Faylor  <cgf@redhat.com>
 
        * path.cc (special_name): Accommodate all special names with
index 127eff9..cbe31d0 100644 (file)
@@ -112,6 +112,7 @@ static NO_COPY struct
   X (NOACCESS,                 EFAULT),
   X (FILE_INVALID,             ENXIO),
   X (INVALID_ADDRESS,          EOVERFLOW),
+  X (INVALID_BLOCK_LENGTH,     EIO),
   { 0, NULL, 0}
 };
 
index ebd8ef0..42f8407 100644 (file)
@@ -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;