summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2019-08-06 10:08:26 -0400
committerJakob Kaivo <jkk@ung.org>2019-08-06 10:08:26 -0400
commit775b4bb0f74f8b7ebc79dd0ed9a48384e3aadc7f (patch)
treeec743ab040d08e182e19370164bd2195587474c8
parent420d084c391a490f0836baa2721a448ea3c805ce (diff)
fix -f and error messages
-rw-r--r--ln.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/ln.c b/ln.c
index 468e4da..d6e8fbc 100644
--- a/ln.c
+++ b/ln.c
@@ -38,26 +38,26 @@
static int ln(const char *path, int dirfd, int sym, int force, int flag)
{
struct stat st;
- if (fstatat(dirfd, path, &st, 0) == 0) {
+ if (fstatat(dirfd, path, &st, AT_SYMLINK_NOFOLLOW) == 0) {
if (!force) {
- fprintf(stderr, "ln: %s: %s\n", strerror(EEXIST));
+ fprintf(stderr, "ln: %s: %s\n", path, strerror(EEXIST));
return 1;
}
if (unlinkat(dirfd, path, 0) != 0) {
- fprintf(stderr, "ln: %s: %s\n", strerror(errno));
+ fprintf(stderr, "ln: %s: %s\n", path, strerror(errno));
return 1;
}
}
if (sym) {
if (symlinkat(path, dirfd, path) != 0) {
- fprintf(stderr, "ln: %s: %s\n", strerror(errno));
+ fprintf(stderr, "ln: %s: %s\n", path, strerror(errno));
return 1;
}
} else {
if (linkat(AT_FDCWD, path, dirfd, path, flag) != 0) {
- fprintf(stderr, "ln: %s: %s\n", strerror(errno));
+ fprintf(stderr, "ln: %s: %s\n", path, strerror(errno));
return 1;
}
}