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.
This commit is contained in:
Eli Zaretskii 2020-09-29 18:21:23 +03:00
parent 6f73cc3579
commit 90e5549f02

View file

@ -6399,7 +6399,8 @@ acl_get_file (const char *fname, acl_type_t type)
{ {
xfree (psd); xfree (psd);
err = GetLastError (); err = GetLastError ();
if (err == ERROR_NOT_SUPPORTED) if (err == ERROR_NOT_SUPPORTED
|| err == ERROR_ACCESS_DENIED)
errno = ENOTSUP; errno = ENOTSUP;
else if (err == ERROR_FILE_NOT_FOUND else if (err == ERROR_FILE_NOT_FOUND
|| err == ERROR_PATH_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. */ be encoded in the current ANSI codepage. */
|| err == ERROR_INVALID_NAME) || err == ERROR_INVALID_NAME)
errno = ENOENT; 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; errno = ENOTSUP;
else else
errno = EIO; errno = EIO;