summaryrefslogtreecommitdiffstats
path: root/bin/rm
diff options
context:
space:
mode:
authormaxim <maxim@FreeBSD.org>2006-10-18 13:16:06 +0000
committermaxim <maxim@FreeBSD.org>2006-10-18 13:16:06 +0000
commit065ac6f82d78d0d21b818cc70407848384bfdd71 (patch)
tree10e735b97714bed5517edef99325832bcf49c1d4 /bin/rm
parent7ab1a57f62d30a3f15f7aa93b482df4b53bbfdf3 (diff)
downloadFreeBSD-src-065ac6f82d78d0d21b818cc70407848384bfdd71.zip
FreeBSD-src-065ac6f82d78d0d21b818cc70407848384bfdd71.tar.gz
o Backout rev. 1.55. Don't waste cpu cycles for bzero(), do not
call chflags() for whiteouted files. Prodded by: ru
Diffstat (limited to 'bin/rm')
-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