OSDN Git Service

* ntea.c (write_ea): Don't abort if not-samba.
authorcgf <cgf>
Wed, 16 Sep 2009 16:23:51 +0000 (16:23 +0000)
committercgf <cgf>
Wed, 16 Sep 2009 16:23:51 +0000 (16:23 +0000)
winsup/cygwin/ChangeLog
winsup/cygwin/ntea.cc

index 6a090c0..70440a4 100644 (file)
@@ -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
index 5b4ec3b..744076e 100644 (file)
@@ -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;
     }