OSDN Git Service

* path.cc (symlink): Create security attributes so that only the
authorcorinna <corinna>
Tue, 4 Feb 2003 19:26:01 +0000 (19:26 +0000)
committercorinna <corinna>
Tue, 4 Feb 2003 19:26:01 +0000 (19:26 +0000)
user can modify the symlink.
* security.cc (set_security_attribute): Remove symlink special
handling.

winsup/cygwin/ChangeLog
winsup/cygwin/path.cc
winsup/cygwin/security.cc

index 5c62517..429000e 100644 (file)
@@ -1,3 +1,10 @@
+2003-02-04  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (symlink): Create security attributes so that only the
+       user can modify the symlink.
+       * security.cc (set_security_attribute): Remove symlink special
+       handling.
+
 2003-02-04  Pierre Humblet  <pierre.humblet@ieee.org>
 
        * grp.cc (internal_getgroups): Do not return without closing
index 1d754be..fe6d255 100644 (file)
@@ -2643,7 +2643,7 @@ symlink (const char *topath, const char *frompath)
     }
 
   if (allow_ntsec && win32_path.has_acls ())
-    set_security_attribute (S_IFLNK | S_IRWXU | S_IRWXG | S_IRWXO,
+    set_security_attribute (S_IFLNK | STD_RBITS | STD_WBITS,
                            &sa, alloca (4096), 4096);
 
   h = CreateFile (win32_path, GENERIC_WRITE, 0, &sa,
index 224eff4..f72b896 100644 (file)
@@ -1853,10 +1853,6 @@ void
 set_security_attribute (int attribute, PSECURITY_ATTRIBUTES psa,
                        void *sd_buf, DWORD sd_buf_size)
 {
-  /* symlinks are anything for everyone! */
-  if ((attribute & S_IFLNK) == S_IFLNK)
-    attribute |= S_IRWXU | S_IRWXG | S_IRWXO;
-
   psa->lpSecurityDescriptor = sd_buf;
   InitializeSecurityDescriptor ((PSECURITY_DESCRIPTOR) sd_buf,
                                SECURITY_DESCRIPTOR_REVISION);