Commit Graph

71 Commits

Author SHA1 Message Date
njoly
bee4003ac7 Remove a few unneeded Pp macros. 2012-10-13 14:18:16 +00:00
dholland
61f93db25f Rectify race condition in rm -P processing by checking that the file
we opened is the one we expected to get. Also use O_NOFOLLOW to help
avoid even opening devices, which sometimes produce side effects.

Reported by Radoslaw A. Zarzynski.
2012-06-13 07:35:37 +00:00
christos
df65f3e2c9 Siginfo support from Daniel Loffgren 2012-01-21 16:38:41 +00:00
joerg
074c0c6e91 static + __dead 2011-08-29 14:47:47 +00:00
lukem
990d25a96c fix -Wsign-compare issues 2009-02-14 08:02:04 +00:00
lukem
2fe2731d3f Remove the \n and tabs from the __COPYRIGHT() strings. 2008-07-20 00:52:39 +00:00
christos
25ff9ac977 PR/38754: murray armfield: Rm prints diagnostic messages when invoked with -f
and no other arguments, contrary to POSIX. Also cosmetic fixes.
2008-05-26 14:12:06 +00:00
christos
c1686632e0 PR/36535: Greg A. Woods: rm(1) should present user:group the same way as
chown(8) et al
2007-06-24 17:59:31 +00:00
wiz
1763875ada New sentence, new line. Bump date for previous. 2006-09-02 23:28:32 +00:00
liamjfoy
0590732532 Document new -P behaviour 2006-08-25 11:08:50 +00:00
liamjfoy
c9432db8c8 Only remove the file if the file can be successfully
overwritten. Old code would remove the file regardless of
whether the overwrite was successful or not.

New behaviour:

carpy: {12} touch moo ; chmod 444 moo
carpy: {13} ls
moo
carpy: {14} rm -P moo
rm: moo: -P was specified but file could not be overwritten
carpy: {15} ls
moo
carpy: {16}

ok: christos@, joerg@ & tech-userlevel@
2006-08-25 11:00:40 +00:00
tls
1775a62964 Fix sentence fragment that somehow got into the long comment about rm -P. 2006-08-14 20:38:13 +00:00
peter
96b1a913a5 Call fts_close() at the end of rm_tree().
Fixes Coverity CID 1670.
2006-03-17 23:55:42 +00:00
wiz
8cb1352961 Sort sections, bump date for previous, and add a comma after e.g.. 2004-03-24 11:37:07 +00:00
fair
e008163968 Add an EXAMPLES section to answer PR 22255 2004-03-24 06:55:58 +00:00
wiz
8d21cba126 Fix typo. 2004-01-11 09:41:55 +00:00
wiz
a714cd574d Bump date for previous; |fmt; remove trailing white space.
New sentence, new line.
2004-01-11 09:40:36 +00:00
tls
f71666350e Adjust comment to indicate what this code is actually useful for, and that
it's not really "cheap".
2004-01-11 02:17:12 +00:00
tls
ac7fdd5957 UFS->FFS 2004-01-11 02:13:14 +00:00
tls
e9e0ca4155 Change behaviour of -P option to conform generally to DoD 5220.22-M
standard.  This change inspired by Apple's "Secure Empty Trash" functionality
in MacOS 10.3.  However, it is important to understand that this change
does not -- and can not -- actually achieve conformance to the current
revision of the standard.  To quote the manual page:

     The -P option attempts to conform to U.S. DoD 5220-22.M, "National Indus-
     trial Security Program Operating Manual" ("NISPOM") as updated by Change
     2 and the July 23, 2003 "Clearing & Sanitization Matrix".  However,
     unlike earlier revisions of NISPOM, the 2003 matrix imposes requirements
     which make it clear that the standard does not and can not apply to the
     erasure of individual files, in particular requirements relating to spare
     sector management for an entire magnetic disk.  Because these
     requirements are not met, the -P option does not conform to the standard.

This also makes the -P option a *lot* more expensive than it used to be.
It used to overwrite with 0xff, overwrite with 0x00, overwrite with 0xff,
with an fsync after each write.  Now it overwrites with a random character,
overwrites with 0xff, overwrites with 0x00, reads to validate the 0x00
overwrite, then overwrites with random data -- calling sync() after every
operation in an attempt to force seeks that will clear the data from the
cache of disks that lie about whether data has been committed to the
platters.  Also, the file's opened with O_SYNC|O_RSYNC to cause metadata
updates on every read/write, which should cause still more seeks.

This is better than it used to be, but it's by no means adequate if you
have data you really don't want read by an adversary who can pull the
disk apart.
2004-01-11 02:04:05 +00:00
jschauma
ad8530d1eb remove unused code left from printescaped() backput as pointed out by Jeff
Ito in PR bin/23969 and PR bin/23970.
2004-01-04 16:04:18 +00:00
jschauma
6a75fbb636 Following private discussion with kleink@ and hubertf@ and public discussion
on tech-userlevel@, back out printescaped() functionality.
kleink: ``We sell rope.''
2003-09-14 19:20:16 +00:00
itojun
e1e0321817 use bounded string op 2003-08-13 02:51:20 +00:00
agc
b5b2954259 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22249, verified by myself.
2003-08-07 09:05:01 +00:00
jschauma
458ed23412 As discusses a little while back on tech-userlevel:
If stdout is a tty, use vis(3) to print any filenames to prevent garbage
from being printed if the filename contains control- or other non-printable
characters.

While here, sprinkle some EXIT_FAILURE and NOTREACHED where appropriate.
2003-08-04 22:31:21 +00:00
enami
a663fd779c Remove space at the end of line. 2003-03-01 07:57:33 +00:00
jrf
1a7a1a2569 Note: Original change approved by Enami.
Accidentally left eval = 1 when I was adding the extension which caused the rm command to return a 1 when it successfully removed a directory. Thanks to tron for catching it.
2003-02-13 19:51:10 +00:00
wiz
93f423f249 New sentence, new line. I'm having a slight deja-vu... 2003-02-12 19:48:18 +00:00
jrf
c271c1590b Added the -v flag. 2003-02-12 19:27:22 +00:00
enami
230caefde1 - Remove the last __P.
- Don't put space between function name and () op.
2002-11-05 04:49:05 +00:00
enami
b0d6c27ed1 - Use four space to indent continuation line.
- Put a space after the C language keyword ``switch''.
- Put an empty line if a function doesn't have local variable.
- Use do { } while (/*CONSTCOND*/ 0) instead of { } to protect a multi
  statement macro
2002-05-02 13:25:09 +00:00
enami
9ca32dd36a A default .Ar arugment is sufficient. 2002-05-02 13:14:23 +00:00
ross
dc5571b22e Generate <>& symbolically. I'm avoiding .../dist/... directories for now. 2002-02-08 01:21:55 +00:00
soren
dc53bf3cba Sync getopt() / man page with actual getopt options. 2001-12-20 20:10:33 +00:00
wiz
3ebcdc5e43 Whitespace nits. 2001-12-20 19:31:48 +00:00
jmc
440e119ba5 Patch from mycroft to fix case of rm -rf nonexistant on a r/o fs would still
report errors. Checking the fts_errno for ENOENT before attempting removal
fixes this.
2001-11-22 00:16:07 +00:00
wiz
0b11ad4584 ANSIfy, KNF, [gs]etprogname, by Petri Koistinen. 2001-09-16 21:24:54 +00:00
kleink
2caf6aacdd For commands and utilities, use EXIT STATUS rather than RETURN VALUES as
appropriate (and documented in mdoc(7)).
2000-09-04 07:30:07 +00:00
hubertf
1cb54f68ac Add 'RETURN VALUE' section header. 2000-08-28 02:11:04 +00:00
drochner
85cbf55d16 Since our gcc doesn't warn about NULL format strings anymore, we can
fix the incorrect err(1, "%s", "") et al.
Closes PR bin/7592 by cgd.
1999-11-09 15:06:30 +00:00
is
b4d9cefaed Don't ask for permission to unlink a file if the access error is ETXTBSY.
This needs vfs_syscalls.c 1.138 to really work.
Fixes pr 4134 by Johan Danielsson.
1999-06-30 10:18:59 +00:00
mycroft
ee9e50eacb Be more retentive about use of NOTREACHED and noreturn. 1998-07-28 11:41:40 +00:00
mycroft
9dc385beb1 Delint. 1998-07-28 05:31:22 +00:00
mycroft
29bf463dcb Delint. 1998-07-28 04:01:03 +00:00
kleink
88c27a6c44 Per 1003.2, no warnings shall be generated for attempts to remove non-existent
files in case the `-f' option has been specified:
Extend the definition of `non-existent' to include ENAMETOOLONG and ENOTDIR
cases, since file names failing with these errors can safely assumed to be
non-existent.  Fixes PR bin/2993.
1997-12-21 15:28:27 +00:00
enami
c3872193cf Fix .Nm usage. 1997-10-20 08:50:59 +00:00
christos
23edbe3557 Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.
1997-07-20 22:36:20 +00:00
christos
25b23032f5 Fix compiler warnings.
Add WARNS=1
1997-07-20 20:51:08 +00:00
jtc
d943cdadce Sync with 4.4lite2 1995-09-07 06:42:58 +00:00
jtc
23e6aab105 Use "utility" instead of "command". Modern definitions of these terms
are distinct (See POSIX.2 glossary).

A utility is a executable, script or shell builtin; while a command
can be any of those things plus lists, pipelines, compound commands
(if, for, while) and shell function definitions.
1995-07-25 19:36:36 +00:00