Add bulletproofing for cases where stdin, stdout, or stderr are closed.
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 11 Apr 2005 20:13:42 +0000 (20:13 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 11 Apr 2005 20:13:42 +0000 (20:13 +0000)
ChangeLog

index 31ef7fa..0fc87e6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,67 @@
-2005-04-09  Jim Meyering  <jim@meyering.net>
+2005-04-11  Paul Eggert  <eggert@cs.ucla.edu>
 
        * Version 5.3.1.
 
+       Add bulletproofing for cases where stdin, stdout, or stderr are closed.
+       * src/comm.c: Include stdio-safer.h.
+       (compare_files): Exit right away on I/O error rather than continuing
+       and producing confusing output and error messages.
+       Return void, not int; all callers changed.
+       Use fopen_safer to avoid confusion with file descriptors.
+       * src/copy.c: Include unistd-safer.h.
+       (copy_reg): Use fd_safer.
+       * src/csplit.c: Include stdio-safer.h.
+       (input_desc): Remove unnecessary static initialization.
+       (set_input_file): Use STDIN_FILENO, not 0.
+       (create_output_file): Use fopen_safer.
+       * src/dircolors.c (dc_parse_file): Don't assume fopen does not
+       return stdin.
+       * src/head.c (head_file): Don't assume open does not return 0.
+       * src/join.c: Include stdio-safer.h.
+       (main): Use fopen_safer.  Simplify the resulting code.
+       * src/md5sum.c (digest_file, digest_check):
+       Don't assume that fopen does not return stdin.
+       * src/nohup.c: Include unistd-safer.h.
+       (main): Don't dup stderr to stdin or stdout by mistake.
+       * src/od.c (check_and_close): Don't assume fopen does not return stdin.
+       * src/paste.c (paste_serial): Likewise.
+       * src/pr.c: Include stdio-safer.h.
+       (open_file): Use fopen_safer.
+       (close_file): Don't assume fopen does not return stdin.
+       * src/ptx.c (main): Don't assume fopen returns stdout after closing
+       stdout.  Use freopen instead.
+       * src/shred.c: Include unistd-safer.h.
+       (wipename): Use fd_safer on directory file descriptor.
+       (wipefile): Remove special case for /dev/fd/* on older hosts.
+       It didn't work in general, and wasn't documented.
+       Use fd_safer.
+       * src/sort.c: Include unistd-safer.h.
+       (create_temp_file): Use fd_safer.
+       (xfclose): Don't assume fileno (stdin) == STDIN_FILENO, etc.
+       * src/split.c: Include unistd-safer.h.
+       (cwrite): Use fd_safer.  Replace mystery constant 0666 with symbolic
+       version, as POSIX requires.
+       * src/sum.c (bsd_sum_file, sysv_sym_file):
+       Use same pattern as elsewhere for checking for stdin.
+       * src/tac.c: Include unistd-safer.h.
+       (copy_to_temp): Use fd_safer.
+       (tac_file): Don't assume fopen cannot return stdin.
+       * src/tail.c: Include unistd-safer.h rather than fcntl-safer.h.
+       (recheck, tail_file): Use fd_safer rather than open_safer.
+       * src/tee.c: Include stdio-safer.h.
+       (tee): Use fopen_safer.
+       * src/touch.c: Include unistd-safer.h.
+       (touch): Use fd_safer.
+       * src/tsort.c (have_read_stdin): Remove; no longer needed.  All uses
+       removed.
+       (tsort): Do not assume fopen can't return stdin.
+       Close stdin before returning.  All uses changed.
+       * src/unexpand.c (next_file): Don't assume fopen cannot return stdin.
+       * src/uniq.c: Include stdio_safer.h.
+       (check_file): Don't assume fopen cannot return stdin or stdout.
+
+2005-04-09  Jim Meyering  <jim@meyering.net>
+
        * src/dd.c (quit): Define with ATTRIBUTE_NORETURN.
 
        Now that close_stdout closes standard output unconditionally,