summaryrefslogtreecommitdiff
path: root/src/w32.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2020-09-29 18:21:23 +0300
committerEli Zaretskii <eliz@gnu.org>2020-09-29 18:21:23 +0300
commit90e5549f027f01c16f6f34e55c33d8a549fb32e7 (patch)
treeb861497d32c586257b683c89c96ba6b4ba2d7072 /src/w32.c
parent6f73cc357994c2776ff8cd4f12804ebb20d29efd (diff)
downloademacs-90e5549f027f01c16f6f34e55c33d8a549fb32e7.tar.gz
Don't signal an error when saving files on WdebDAV volumes
* src/w32.c (acl_get_file): If get_file_security raises the ERROR_ACCESS_DENIED error, treat that like unsupported ACLs.
Diffstat (limited to 'src/w32.c')
-rw-r--r--src/w32.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/w32.c b/src/w32.c
index 78e75f0937e..6fed5ba8d3d 100644
--- 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;