Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/security.cc')
-rw-r--r--winsup/cygwin/security.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/winsup/cygwin/security.cc b/winsup/cygwin/security.cc
index 82f1dd8e6..155b0d934 100644
--- a/winsup/cygwin/security.cc
+++ b/winsup/cygwin/security.cc
@@ -1199,9 +1199,14 @@ get_file_attribute (int use_ntsec, const char *file,
if (!attribute)
return 0;
- int oatt = *attribute;
- res = NTReadEA (file, ".UNIXATTR", (char *) attribute, sizeof (*attribute));
- *attribute |= oatt;
+ if (allow_ntea)
+ {
+ int oatt = *attribute;
+ res = NTReadEA (file, ".UNIXATTR", (char *) attribute, sizeof (*attribute));
+ *attribute |= oatt;
+ }
+ else
+ res = 0;
/* symlinks are everything for everyone!*/
if ((*attribute & S_IFLNK) == S_IFLNK)
@@ -1523,7 +1528,7 @@ set_file_attribute (int use_ntsec, const char *file,
if ((attribute & S_IFLNK) == S_IFLNK)
attribute |= S_IRWXU | S_IRWXG | S_IRWXO;
- if (!use_ntsec || !allow_ntsec)
+ if (allow_ntea && (!use_ntsec || !allow_ntsec))
{
if (!NTWriteEA (file, ".UNIXATTR", (char *) &attribute,
sizeof (attribute)))