Page MenuHomeFreeBSD

D44805.diff
No OneTemporary

D44805.diff

diff --git a/bin/cp/cp.c b/bin/cp/cp.c
--- a/bin/cp/cp.c
+++ b/bin/cp/cp.c
@@ -452,13 +452,19 @@
switch (curr->fts_statp->st_mode & S_IFMT) {
case S_IFLNK:
- /* Catch special case of a non-dangling symlink. */
if ((fts_options & FTS_LOGICAL) ||
((fts_options & FTS_COMFOLLOW) &&
curr->fts_level == 0)) {
+ /*
+ * We asked FTS to follow links but got
+ * here anyway, which means the target is
+ * nonexistent or inaccessible. Let
+ * copy_file() deal with the error.
+ */
if (copy_file(curr, dne))
badcp = rval = 1;
- } else {
+ } else {
+ /* Copy the link. */
if (copy_link(curr, !dne))
badcp = rval = 1;
}

File Metadata

Mime Type
text/plain
Expires
Mon, Jan 27, 9:07 PM (8 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16212888
Default Alt Text
D44805.diff (697 B)

Event Timeline