diff options
Diffstat (limited to 'libbb/copy_file.c')
-rw-r--r-- | libbb/copy_file.c | 4 |
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)) |