summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/security.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/security.cc')
-rw-r--r--winsup/cygwin/security.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/winsup/cygwin/security.cc b/winsup/cygwin/security.cc
index 2a5749971..c618c0794 100644
--- a/winsup/cygwin/security.cc
+++ b/winsup/cygwin/security.cc
@@ -1199,7 +1199,9 @@ 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;
/* symlinks are everything for everyone!*/
if ((*attribute & S_IFLNK) == S_IFLNK)
@@ -1523,8 +1525,7 @@ set_file_attribute (int use_ntsec, const char *file,
if (!use_ntsec || !allow_ntsec)
{
- if (!NTWriteEA (file, ".UNIXATTR",
- (char *) &attribute, sizeof (attribute)))
+ if (!NTWriteEA (file, ".UNIXATTR", (char *) &attribute, sizeof (attribute)))
{
__seterrno ();
return -1;