Fix symlink removal problem noted by Erik Andersen.

This commit is contained in:
Matt Kraai 2001-05-11 02:35:36 +00:00
parent 6e91f69a0d
commit f3e79ba6e3

View File

@ -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);