]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't signal an error when saving files on WdebDAV volumes
authorEli Zaretskii <eliz@gnu.org>
Tue, 29 Sep 2020 15:21:23 +0000 (18:21 +0300)
committerEli Zaretskii <eliz@gnu.org>
Tue, 29 Sep 2020 15:21:23 +0000 (18:21 +0300)
* src/w32.c (acl_get_file): If get_file_security raises the
ERROR_ACCESS_DENIED error, treat that like unsupported ACLs.

src/w32.c

index 78e75f0937eb6cc32247ca83b6ed94b60c6e522a..6fed5ba8d3da1232407edd63c8ce542571f154a9 100644 (file)
--- a/src/w32.c
+++ b/src/w32.c
@@ -6399,7 +6399,8 @@ acl_get_file (const char *fname, acl_type_t type)
                {
                  xfree (psd);
                  err = GetLastError ();
-                 if (err == ERROR_NOT_SUPPORTED)
+                 if (err == ERROR_NOT_SUPPORTED
+                     || err == ERROR_ACCESS_DENIED)
                    errno = ENOTSUP;
                  else if (err == ERROR_FILE_NOT_FOUND
                           || err == ERROR_PATH_NOT_FOUND
@@ -6417,7 +6418,11 @@ 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)
+         else if (err == ERROR_NOT_SUPPORTED
+                  /* ERROR_ACCESS_DENIED is what we get for a volume
+                     mounted by WebDAV, which evidently doesn't
+                     support ACLs.  */
+                  || err == ERROR_ACCESS_DENIED)
            errno = ENOTSUP;
          else
            errno = EIO;