From 3498f76deb52fcff5c4f8d20050ec844608d108d Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Fri, 24 Sep 2010 12:41:33 +0000 Subject: * errno.cc (errmap): Map ERROR_BAD_NET_RESP to ENOSYS. * fhandler_disk_file.cc (fhandler_disk_file::facl): Handle ENOSYS and point to the explanation. * ntdll.h (STATUS_NOT_IMPLEMENTED): Define. * path.cc (symlink_info::check): Handle the inability of NT4 to use FileNetworkOpenInformation on share root dirs in either direction. * path.h (slash_unc_prefix_p): Remove unused declaration. * security.cc (get_info_from_sd): Handle ENOSYS from get_file_sd. Explain when this happens. --- winsup/cygwin/security.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/security.cc') diff --git a/winsup/cygwin/security.cc b/winsup/cygwin/security.cc index 1052f98c0..509bd1ab0 100644 --- a/winsup/cygwin/security.cc +++ b/winsup/cygwin/security.cc @@ -358,7 +358,12 @@ get_file_attribute (HANDLE handle, path_conv &pc, get_info_from_sd (sd, attribute, uidret, gidret); return 0; } - else + /* ENOSYS is returned by get_file_sd if fetching the DACL from a remote + share returns STATUS_INVALID_NETWORK_RESPONSE, which in turn is + converted to ERROR_BAD_NET_RESP. This potentially occurs when trying + to fetch DACLs from a NT4 machine which is not part of the domain of + the requesting machine. */ + else if (get_errno () != ENOSYS) { if (uidret) *uidret = ILLEGAL_UID; -- cgit v1.2.3