From: Jim Meyering Date: Sat, 1 May 2004 06:48:55 +0000 (+0000) Subject: (change_file_owner): Add a comment. X-Git-Tag: COREUTILS-5_3_0~1647 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=27b510575d4d22104ca18a0ee8430e52f0a792c9;p=platform%2Fupstream%2Fcoreutils.git (change_file_owner): Add a comment. --- diff --git a/src/chown-core.c b/src/chown-core.c index 5df0c18..821adfe 100644 --- a/src/chown-core.c +++ b/src/chown-core.c @@ -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)