cp: by default, refuse to copy through a dangling destination symlink
authorJim Meyering <meyering@redhat.com>
Fri, 16 Nov 2007 08:31:15 +0000 (09:31 +0100)
committerJim Meyering <meyering@redhat.com>
Wed, 21 Nov 2007 23:19:06 +0000 (00:19 +0100)
commit2bdc48121916ab0d7bb7d0cb5cee25549c3705c9
tree8a808a3c99c29aa7f5e958f7bac4f274f8eb753c
parentfa636dcf6a298a4935ba950d433c33a07d0f8504
cp: by default, refuse to copy through a dangling destination symlink

* NEWS: Mention this change.
* doc/coreutils.texi (cp invocation): Describe the new behavior.
* src/copy.c: No longer include "canonicalize.h".
(copy_reg): Upon failure to open a dangling destination symlink, don't
canonicalize the name, but rather fail (default) or, with POSIXLY_CORRECT,
repeat the open call without O_EXCL (potentially dangerous).
* src/copy.h (struct cp_options) [open_dangling_dest_symlink]:
New member.  Reorder the others, grouping "bool" and "enum"
members together.
* tests/cp/thru-dangling: Test for changed and new behavior.
* src/cp.c (cp_option_init): Initialize new member.
* src/install.c (cp_option_init): Likewise.
* src/mv.c (cp_option_init): Likewise.

Signed-off-by: Jim Meyering <meyering@redhat.com>
ChangeLog
NEWS
doc/coreutils.texi
src/copy.c
src/copy.h
src/cp.c
src/install.c
src/mv.c
tests/cp/thru-dangling