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:
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/ntea.cc9
2 files changed, 11 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 6a090c0ac..70440a4c9 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+2009-09-16 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * ntea.c (write_ea): Don't abort if not-samba.
+
2009-09-01 Christopher Faylor <me+cygwin@cgf.cx>
* select.cc (peek_console): Always check window size when there is ANY
diff --git a/winsup/cygwin/ntea.cc b/winsup/cygwin/ntea.cc
index 5b4ec3b53..744076ef7 100644
--- a/winsup/cygwin/ntea.cc
+++ b/winsup/cygwin/ntea.cc
@@ -214,11 +214,16 @@ write_ea (HANDLE hdl, path_conv &pc, const char *name, const char *value,
user namespace item, we remove the leading namespace from the name.
This keeps tools like attr/getfattr/setfattr happy. Otherwise
setting the EA fails as if we don't have the permissions. */
- if (pc.fs_is_samba () && ascii_strncasematch (name, "user.", 5))
+ /* Samba hides the user namespace from Windows clients. If we try to
+ retrieve a user namespace item, we remove the leading namespace from
+ the name, otherwise the search fails. */
+ if (!pc.fs_is_samba ())
+ /* nothing to do */;
+ else if (ascii_strncasematch (name, "user.", 5))
name += 5;
else
{
- set_errno (EOPNOTSUPP);
+ set_errno (ENOATTR);
goto out;
}