summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rw-r--r--bin/rm/rm.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/bin/rm/rm.c b/bin/rm/rm.c
index 7d02fa0..614479d 100644
--- a/bin/rm/rm.c
+++ b/bin/rm/rm.c
@@ -317,7 +317,6 @@ rm_file(char **argv)
int rval;
char *f;
- bzero(&sb, sizeof(sb));
/*
* Remove a file. POSIX 1003.2 states that, by default, attempting
* to remove a directory is an error, so must always stat the file.
@@ -348,7 +347,7 @@ rm_file(char **argv)
if (!fflag && !S_ISWHT(sb.st_mode) && !check(f, f, &sb))
continue;
rval = 0;
- if (!uid &&
+ if (!uid && !S_ISWHT(sb.st_mode) &&
(sb.st_flags & (UF_APPEND|UF_IMMUTABLE)) &&
!(sb.st_flags & (SF_APPEND|SF_IMMUTABLE)))
rval = chflags(f, sb.st_flags & ~(UF_APPEND|UF_IMMUTABLE));
OpenPOWER on IntegriCloud