bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#41463: 27.0.91; ACL error on Windows when trying to save file


From: Eli Zaretskii
Subject: bug#41463: 27.0.91; ACL error on Windows when trying to save file
Date: Sat, 23 May 2020 08:52:49 +0300

> Date: Sat, 23 May 2020 08:43:40 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 41463@debbugs.gnu.org
> 
> > I traced this to acl_get_file() in w32.c where GetLastError() returns
> > 50, i.e. ERROR_NOT_SUPPORTED.
> 
> Thanks.  Does the patch below fix this problem?

Actually, please use this more thorough patch instead:

diff --git a/src/w32.c b/src/w32.c
index 62c53fd..78e75f0 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -6398,7 +6398,15 @@ acl_get_file (const char *fname, acl_type_t type)
              if (!get_file_security (fname, si, psd, sd_len, &sd_len))
                {
                  xfree (psd);
-                 errno = EIO;
+                 err = GetLastError ();
+                 if (err == ERROR_NOT_SUPPORTED)
+                   errno = ENOTSUP;
+                 else if (err == ERROR_FILE_NOT_FOUND
+                          || err == ERROR_PATH_NOT_FOUND
+                          || err == ERROR_INVALID_NAME)
+                   errno = ENOENT;
+                 else
+                   errno = EIO;
                  psd = NULL;
                }
            }
@@ -6409,6 +6417,8 @@ acl_get_file (const char *fname, acl_type_t type)
                      be encoded in the current ANSI codepage. */
                   || err == ERROR_INVALID_NAME)
            errno = ENOENT;
+         else if (err == ERROR_NOT_SUPPORTED)
+           errno = ENOTSUP;
          else
            errno = EIO;
        }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]