diff options
author | Eli Zaretskii <eliz@gnu.org> | 2020-09-29 18:21:23 +0300 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2020-09-29 18:21:23 +0300 |
commit | 90e5549f027f01c16f6f34e55c33d8a549fb32e7 (patch) | |
tree | b861497d32c586257b683c89c96ba6b4ba2d7072 | |
parent | 6f73cc357994c2776ff8cd4f12804ebb20d29efd (diff) | |
download | emacs-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.
-rw-r--r-- | src/w32.c | 9 |
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; |