diff options
author | Eric Blake <ebb9@byu.net> | 2007-08-20 17:01:18 +0200 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2007-08-20 17:03:45 +0200 |
commit | feed02af9d09527745d10138cc08da9ed0702b7e (patch) | |
tree | acf5df1c403e748267ce956baf720e0bbd26ca0e | |
parent | a05ae2f7168f42d290512ae919bb9ce4aa4d7063 (diff) | |
download | coreutils-feed02af9d09527745d10138cc08da9ed0702b7e.tar.xz |
Avoid consuming too much seekable input when yesno is used.
* bootstrap.conf (gnulib_modules): Grab closein.
* src/system.h (includes): Also include closein.h.
* src/mv.c (main): Use close_stdin, not close_stdout.
* src/cp.c (main): Likewise.
* src/ln.c (main): Likewise.
* src/rm.c (main): Likewise.
* src/install.c (main): Likewise.
* NEWS: Document the fix.
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | bootstrap.conf | 2 | ||||
-rw-r--r-- | lib/.cvsignore | 7 | ||||
-rw-r--r-- | lib/.gitignore | 7 | ||||
-rw-r--r-- | m4/.cvsignore | 4 | ||||
-rw-r--r-- | m4/.gitignore | 4 | ||||
-rw-r--r-- | po/ChangeLog | 6 | ||||
-rw-r--r-- | po/POTFILES.in | 1 | ||||
-rw-r--r-- | src/cp.c | 2 | ||||
-rw-r--r-- | src/install.c | 2 | ||||
-rw-r--r-- | src/ln.c | 4 | ||||
-rw-r--r-- | src/mv.c | 2 | ||||
-rw-r--r-- | src/rm.c | 2 | ||||
-rw-r--r-- | src/system.h | 1 |
15 files changed, 51 insertions, 8 deletions
@@ -1,3 +1,15 @@ +2007-08-19 Eric Blake <ebb9@byu.net> + + Avoid consuming too much seekable input when yesno is used. + * bootstrap.conf (gnulib_modules): Add closein. + * src/system.h (includes): Also include closein.h. + * src/mv.c (main): Use close_stdin, not close_stdout. + * src/cp.c (main): Likewise. + * src/ln.c (main): Likewise. + * src/rm.c (main): Likewise. + * src/install.c (main): Likewise. + * NEWS: Document the fix. + 2007-08-18 Jim Meyering <jim@meyering.net> Use new "idcache.h" header. @@ -72,6 +72,9 @@ GNU coreutils NEWS -*- outline -*- "cp -i --update older newer" no longer prompts; same for mv + "cp -i" now detects read errors on standard input, and no longer consumes + too much seekable input; same for ln, install, mv, and rm. + cut now diagnoses a range starting with zero (e.g., -f 0-2) as invalid; before, it would treat it as if it started with 1 (-f 1-2). diff --git a/bootstrap.conf b/bootstrap.conf index 58a325738..68896c77b 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -40,7 +40,7 @@ gnulib_modules=" c-strcase c-strtod c-strtold calloc canon-host canonicalize chown cloexec config-h configmake - closeout + closein closeout crypto/md5 crypto/sha1 cycle-check d-ino d-type diacrit dirfd dirname dup2 diff --git a/lib/.cvsignore b/lib/.cvsignore index ae85b19f6..fd17849ff 100644 --- a/lib/.cvsignore +++ b/lib/.cvsignore @@ -42,6 +42,8 @@ cloexec.c cloexec.h close-stream.c close-stream.h +closein.c +closein.h closeout.c closeout.h concatpath.c @@ -83,6 +85,7 @@ fcntl-safer.h fcntl.h fcntl_.h fd-safer.c +fflush.c file-has-acl.c file-type.c file-type.h @@ -103,6 +106,10 @@ fnmatch_loop.c fopen-safer.c fprintftime.c fprintftime.h +fpurge.c +fpurge.h +freading.c +freading.h free.c fseeko.c fstatat.c diff --git a/lib/.gitignore b/lib/.gitignore index b716aa8e9..f44081dea 100644 --- a/lib/.gitignore +++ b/lib/.gitignore @@ -39,6 +39,8 @@ cloexec.c cloexec.h close-stream.c close-stream.h +closein.c +closein.h closeout.c closeout.h concatpath.c @@ -78,6 +80,7 @@ fcntl-safer.h fcntl.h fcntl_.h fd-safer.c +fflush.c file-has-acl.c file-type.c file-type.h @@ -98,6 +101,10 @@ fnmatch_loop.c fopen-safer.c fprintftime.c fprintftime.h +fpurge.c +fpurge.h +freading.c +freading.h free.c fseeko.c fstatat.c diff --git a/m4/.cvsignore b/m4/.cvsignore index 88f1d88aa..648715ba5 100644 --- a/m4/.cvsignore +++ b/m4/.cvsignore @@ -19,6 +19,7 @@ chown.m4 clock_time.m4 cloexec.m4 close-stream.m4 +closein.m4 closeout.m4 codeset.m4 config-h.m4 @@ -41,6 +42,7 @@ extensions.m4 fchdir.m4 fcntl-safer.m4 fcntl_h.m4 +fflush.m4 file-type.m4 fileblocks.m4 filemode.m4 @@ -51,6 +53,8 @@ float_h.m4 fnmatch.m4 fpending.m4 fprintftime.m4 +fpurge.m4 +freading.m4 free.m4 fseeko.m4 fstypename.m4 diff --git a/m4/.gitignore b/m4/.gitignore index 17ff10048..105240784 100644 --- a/m4/.gitignore +++ b/m4/.gitignore @@ -18,6 +18,7 @@ chown.m4 clock_time.m4 cloexec.m4 close-stream.m4 +closein.m4 closeout.m4 codeset.m4 config-h.m4 @@ -40,6 +41,7 @@ extensions.m4 fchdir.m4 fcntl-safer.m4 fcntl_h.m4 +fflush.m4 file-type.m4 fileblocks.m4 filemode.m4 @@ -50,6 +52,8 @@ float_h.m4 fnmatch.m4 fpending.m4 fprintftime.m4 +fpurge.m4 +freading.m4 free.m4 fseeko.m4 fstypename.m4 diff --git a/po/ChangeLog b/po/ChangeLog index 366ca7489..247a76a2a 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,7 @@ +2007-08-19 Eric Blake <ebb9@byu.net> + + * POTFILES.in: Add lib/closein.c. + 2007-08-08 Jim Meyering <jim@meyering.net> Adapt to gnulib's latest xstrtol change. @@ -238,7 +242,7 @@ ----- - Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software + Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. Copying and distribution of this file, with or without diff --git a/po/POTFILES.in b/po/POTFILES.in index 61f6501f7..7f4d5c2a5 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -4,6 +4,7 @@ # These are nominally temporary... lib/acl.c lib/argmatch.c +lib/closein.c lib/closeout.c lib/error.c lib/euidaccess-stat.c @@ -867,7 +867,7 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); - atexit (close_stdout); + atexit (close_stdin); selinux_enabled = (0 < is_selinux_enabled ()); cp_option_init (&x); diff --git a/src/install.c b/src/install.c index 28e2dd50a..34f61ffba 100644 --- a/src/install.c +++ b/src/install.c @@ -290,7 +290,7 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); - atexit (close_stdout); + atexit (close_stdin); cp_option_init (&x); @@ -1,5 +1,5 @@ /* `ln' program to create links between files. - Copyright (C) 1986, 1989-1991, 1995-2006 Free Software Foundation, Inc. + Copyright (C) 1986, 1989-1991, 1995-2007 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -398,7 +398,7 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); - atexit (close_stdout); + atexit (close_stdin); /* FIXME: consider not calling getenv for SIMPLE_BACKUP_SUFFIX unless we'll actually use backup_suffix_string. */ @@ -357,7 +357,7 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); - atexit (close_stdout); + atexit (close_stdin); cp_option_init (&x); @@ -238,7 +238,7 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); - atexit (close_stdout); + atexit (close_stdin); rm_option_init (&x); diff --git a/src/system.h b/src/system.h index 3c7f49d10..2c4bfd345 100644 --- a/src/system.h +++ b/src/system.h @@ -419,6 +419,7 @@ enum #define VERSION_OPTION_DESCRIPTION \ _(" --version output version information and exit\n") +#include "closein.h" #include "closeout.h" #include "version-etc.h" |