From 90e5549f027f01c16f6f34e55c33d8a549fb32e7 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 29 Sep 2020 18:21:23 +0300 Subject: [PATCH] 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. --- src/w32.c | 9 +++++++-- 1 file 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; -- 2.39.5