diff options
Diffstat (limited to 'winsup/cygwin/security.cc')
-rw-r--r-- | winsup/cygwin/security.cc | 5 |
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; |