Paul Eggert [Tue, 3 Jan 2006 06:20:06 +0000 (06:20 +0000)]
(RC_do_ordinary_chown): New enum value.
(restricted_chown): Return it, if the file cannot be accessed due
to EPERM, or if no uid or gid are required, or if the file is
neither a directory nor a regular file. Rewrite to avoid gotos.
(change_file_owner): Handle RC_do_ordinary_chown case.
Rewrite to avoid gotos.
Paul Eggert [Tue, 3 Jan 2006 06:00:10 +0000 (06:00 +0000)]
(General date syntax): Invalid dates are rejected.
(Time of day items): Mention the possibility of leap seconds.
Problem reported by Dr. David Alan Gilbert.
Jim Meyering [Mon, 2 Jan 2006 19:11:22 +0000 (19:11 +0000)]
(parse_options): Change warning to say that --retry
is useful `mainly' (not `only') when following by name.
Reported here: http://bugs.debian.org/273781
Paul Eggert [Mon, 2 Jan 2006 06:39:06 +0000 (06:39 +0000)]
(usage): Clarify -m's operation.
(main): If -m is given, don't invoke chmod; use umask 0 instead.
Report an error if -m asks for bits outside the 777 range.
Paul Eggert [Mon, 2 Jan 2006 06:38:06 +0000 (06:38 +0000)]
(usage): Clarify -m's operation.
(main): If -m is given, don't invoke chmod; use umask 0 instead.
Report an error if -m asks for bits outside the 777 range.
Paul Eggert [Mon, 2 Jan 2006 06:37:36 +0000 (06:37 +0000)]
Include lchmod.h.
(usage): Clarify -m's operation.
(main): Use lchmod rather than chmod. Don't use lchmod unless the
new mode contains bits outside the 777 range.
Paul Eggert [Tue, 27 Dec 2005 07:59:27 +0000 (07:59 +0000)]
(fd_to_subdirp): Open with O_DIRECTORY | O_NOCTTY
| O_NOFOLLOW too, for consistency with other dir-openers.
Use POSIX-preferred O_NONBLOCK rather than O_NDELAY.
(is_empty_dir): Likewise.
Paul Eggert [Tue, 27 Dec 2005 07:55:50 +0000 (07:55 +0000)]
(defined_S_IFMT): New macro.
Include stat-macros.h.
Include stdlib.h, for abort().
Don't include stdio.h or assert.h; no longer needed.
(same_file_type): Don't assume S_IFMT is defined, as POSIX
does not require this. Don't assume S_IFCHR and S_IFBLK have
their usual sort of bit pattern.
(fchmod_new): Open with O_NOCTTY for as well, for minor
improvement on hosts where that matters. Don't bother to assert,
since the caller (in this source file) checks the same thing.
Discard any errno from a close failure, for consistency with other
code.
Paul Eggert [Tue, 27 Dec 2005 07:53:50 +0000 (07:53 +0000)]
(cdb_free): Don't bother trying to open directory
for write access: POSIX says that must fail.
(cdb_free): Open with O_NOCTTY | O_NONBLOCK as
well, for minor improvements on hosts that lack O_DIRECTORY.
Jim Meyering [Mon, 26 Dec 2005 18:53:58 +0000 (18:53 +0000)]
(chdir_no_follow): Move declaration of local,
sb2, `down' into the scope where it is used.
Note that on some systems this function also fails when DIR
is a writable-yet-unreadable directory.
Paul Eggert [Sun, 25 Dec 2005 21:35:38 +0000 (21:35 +0000)]
(chdir_no_follow): Don't include stdio.h, assert.h,
unistd.h, fcntl--.h; not needed.
(O_DIRECTORY): Define if not already defined.
(chdir_no_follow): Revamp describing comment to match code more
closely. Redo use of internal vars to avoid lint complaints.
Work even if directory is writeable but not readable.
Open with O_DIRECTORY | O_NOCTTY, for benefit of hosts that
don't have O_NOFOLLOW. Use O_NONBLOCK (POSIX spelling) rather
than O_NDELAY. Don't bother invoking fstat if open does not
dereference symlink, since the result isn't used then.
Don't assume file descriptor is positive; it might be zero
now that we no longer include fcntl--.h (we don't need fcntl--.h
since we immediately close the descriptor).
Jim Meyering [Mon, 19 Dec 2005 18:18:03 +0000 (18:18 +0000)]
(main) Avoid a minor race condition when `-m MODE' is specified, by using
open, fchown, and close rather than just chown. To do that reliably
(even with an overly restrictive umask), ensure that each
mknod call uses a mode including at least owner-read access.
(main): When `-m MODE' is specified, exit nonzero if
the subsequent chown (or equivalent open,fchown,close) fails.
Jim Meyering [Mon, 19 Dec 2005 18:17:16 +0000 (18:17 +0000)]
(main) Avoid a minor race condition when `-m MODE' is specified, by using
open, fchown, and close rather than just chown. To do that reliably
(even with an overly restrictive umask), ensure that each
mkdir call uses a mode including at least owner-read access.
Jim Meyering [Mon, 19 Dec 2005 18:16:07 +0000 (18:16 +0000)]
(main) Avoid a minor race condition when `-m MODE' is specified, by using
open, fchown, and close rather than just chown. To do that reliably
(even with an overly restrictive umask), ensure that each mknod/mkfifo
call uses a mode including at least owner-read access.
Jim Meyering [Sat, 17 Dec 2005 13:46:27 +0000 (13:46 +0000)]
(is_empty_dir): Open with O_NDELAY, so we don't hang, e.g., on a named pipe.
(OPEN_NO_FOLLOW_SYMLINK): Remove definition. Use O_NOFOLLOW in
place of all uses, since it is guaranteed (system.h) to be defined.