(change_file_owner): Add a comment.
authorJim Meyering <jim@meyering.net>
Sat, 1 May 2004 06:48:55 +0000 (06:48 +0000)
committerJim Meyering <jim@meyering.net>
Sat, 1 May 2004 06:48:55 +0000 (06:48 +0000)
src/chown-core.c

index 5df0c18..821adfe 100644 (file)
@@ -226,6 +226,16 @@ change_file_owner (FTS *fts, FTSENT *ent,
                  /* Applying chown to a symlink and expecting it to affect
                     the referent is not portable.  So instead, open the
                     file and use fchown on the resulting descriptor.  */
+                 /* FIXME: but on some systems (e.g. Linux-2.1.81 and newer),
+                    using chown is much better, since it *does* follow
+                    symlinks, and the open/fchown approach fails when
+                    the file is not readable.  This looks like a fine case
+                    for another chown wrapper.  In any case, this code can
+                    clobber errno, so fix it or remove it.
+                    Related: with a proper autoconf test -- is this possible,
+                    without root permissions or a guarantee of more than
+                    one group? -- the lchown wrapper may just end up
+                    calling chown on some systems.  */
                  int fd = open (file, O_RDONLY | O_NONBLOCK | O_NOCTTY);
                  fail = (fd == -1 ? 1 : fchown (fd, new_uid, new_gid));
                  if (fd != -1)