Commit Graph

63 Commits

Author SHA1 Message Date
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
cgd 49f0ad8601 convert to new RCS id conventions. 1995-03-21 09:01:59 +00:00
mycroft 0155aa3b5e Mostly sync with CSRG. 1994-12-28 01:37:49 +00:00
jtc 1a6ccc3e14 Strip trailing slashes of operands in checkdot().
POSIX.2 requires that if "." or ".." are specified as the basename
portion of an operand, a diagnostic message be written to standard
error, etc.  We strip the slashes because POSIX.2 defines basename
as the final portion of a pathname after trailing slashes have been
removed.

This also makes rm "perform actions equivalent to" the POSIX.1
rmdir() and unlink() functions when removing directories and files,
even when they do not follow POSIX.1's pathname resolution semantics
(which require trailing slashes be ignored).
1994-11-02 16:17:14 +00:00
mycroft 9baa91f322 Merge with 4.4-Lite version. 1994-09-20 00:37:13 +00:00
jtc a1899e4c09 Fix bug where two messages were printed when a directory could not
be removed due to some error.
1994-03-16 17:49:40 +00:00
jtc bb2df5e351 The -f flag suppresses error messages and changes to the exit value if
a file specified on the command line does not exist.  This is the _only_
case where error messages/exit value are effected by the -f flag.
1994-01-28 20:02:54 +00:00
cgd 8104af1515 don't need -lutil 1994-01-28 00:24:19 +00:00
jtc d655636830 Change order of conditional so that a possible null pointer is not
dereferenced.  This case would only occur when stdin was not a tty.
Thanks to Dan Muntz for discovering this bug.
1993-11-29 22:39:19 +00:00