aboutsummaryrefslogtreecommitdiff
path: root/libbb/copy_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/copy_file.c')
-rw-r--r--libbb/copy_file.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/libbb/copy_file.c b/libbb/copy_file.c
index 7da31f69d..be65c4b47 100644
--- a/libbb/copy_file.c
+++ b/libbb/copy_file.c
@@ -81,13 +81,11 @@ int FAST_FUNC copy_file(const char *source, const char *dest, int flags)
81 smallint retval = 0; 81 smallint retval = 0;
82 smallint dest_exists = 0; 82 smallint dest_exists = 0;
83 smallint ovr; 83 smallint ovr;
84 int status;
85 84
86/* Inverse of cp -d ("cp without -d") */ 85/* Inverse of cp -d ("cp without -d") */
87#define FLAGS_DEREF (flags & (FILEUTILS_DEREFERENCE + FILEUTILS_DEREFERENCE_L0)) 86#define FLAGS_DEREF (flags & (FILEUTILS_DEREFERENCE + FILEUTILS_DEREFERENCE_L0))
88 87
89 status = FLAGS_DEREF ? stat(source, &source_stat) : lstat(source, &source_stat); 88 if ((FLAGS_DEREF ? stat : lstat)(source, &source_stat) < 0) {
90 if (status < 0) {
91 /* This may be a dangling symlink. 89 /* This may be a dangling symlink.
92 * Making [sym]links to dangling symlinks works, so... */ 90 * Making [sym]links to dangling symlinks works, so... */
93 if (flags & (FILEUTILS_MAKE_SOFTLINK|FILEUTILS_MAKE_HARDLINK)) 91 if (flags & (FILEUTILS_MAKE_SOFTLINK|FILEUTILS_MAKE_HARDLINK))