summaryrefslogtreecommitdiff
path: root/src/w32.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2021-11-11 21:41:10 +0200
committerEli Zaretskii <eliz@gnu.org>2021-11-11 21:41:10 +0200
commit24b86cb4f7aa1e14dd9025428140c5fdae5c5227 (patch)
tree66dd395df2a316555e7e133b5eb5e72e8d450994 /src/w32.c
parent6dae01ad6da1bcbced062c0d46a6759c7a0570e4 (diff)
downloademacs-24b86cb4f7aa1e14dd9025428140c5fdae5c5227.tar.gz
emacs-24b86cb4f7aa1e14dd9025428140c5fdae5c5227.tar.bz2
emacs-24b86cb4f7aa1e14dd9025428140c5fdae5c5227.zip
Fix ACL errors with WebDAV volumes on MS-Windows
* src/w32.c (acl_get_file): Handle ERROR_INVALID_FUNCTION from WebDAV. Patch from Ioannis Kappas <ioannis.kappas@gmail.com>. (Bug#51773)
Diffstat (limited to 'src/w32.c')
-rw-r--r--src/w32.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/w32.c b/src/w32.c
index 9fe698d28d7..80e42acf500 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -6595,7 +6595,8 @@ acl_get_file (const char *fname, acl_type_t type)
xfree (psd);
err = GetLastError ();
if (err == ERROR_NOT_SUPPORTED
- || err == ERROR_ACCESS_DENIED)
+ || err == ERROR_ACCESS_DENIED
+ || err == ERROR_INVALID_FUNCTION)
errno = ENOTSUP;
else if (err == ERROR_FILE_NOT_FOUND
|| err == ERROR_PATH_NOT_FOUND
@@ -6614,10 +6615,11 @@ acl_get_file (const char *fname, acl_type_t type)
|| err == ERROR_INVALID_NAME)
errno = ENOENT;
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)
+ /* ERROR_ACCESS_DENIED or ERROR_INVALID_FUNCTION is
+ what we get for a volume mounted by WebDAV,
+ which evidently doesn't support ACLs. */
+ || err == ERROR_ACCESS_DENIED
+ || err == ERROR_INVALID_FUNCTION)
errno = ENOTSUP;
else
errno = EIO;