From 775b4bb0f74f8b7ebc79dd0ed9a48384e3aadc7f Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Tue, 6 Aug 2019 10:08:26 -0400 Subject: fix -f and error messages --- ln.c | 10 +++++----- 1 file 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; } } -- cgit v1.2.1