From f3e79ba6e3b3bfa380241205829d0a78570c9af3 Mon Sep 17 00:00:00 2001 From: Matt Kraai Date: Fri, 11 May 2001 02:35:36 +0000 Subject: [PATCH] Fix symlink removal problem noted by Erik Andersen. --- libbb/remove_file.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libbb/remove_file.c b/libbb/remove_file.c index 52b3211e6..23be40429 100644 --- a/libbb/remove_file.c +++ b/libbb/remove_file.c @@ -37,7 +37,7 @@ extern int remove_file(const char *path, int flags) struct stat path_stat; int path_exists = 1; - if (stat(path, &path_stat) < 0) { + if (lstat(path, &path_stat) < 0) { if (errno != ENOENT) { perror_msg("unable to stat `%s'", path); return -1; @@ -110,6 +110,7 @@ extern int remove_file(const char *path, int flags) return status; } else { if ((!(flags & FILEUTILS_FORCE) && access(path, W_OK) < 0 && + !S_ISLNK(path_stat.st_mode) && isatty(0)) || (flags & FILEUTILS_INTERACTIVE)) { fprintf(stderr, "%s: remove `%s'? ", applet_name, path);