mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-20 18:56:39 +02:00
* src/copy.c (copy_internal): Don't work around old NFS clients like
SunOS-4.1.4 and Irix 5.3 that set errno to values like EIO and ENOTEMPTY upon failed rename. Otherwise, we risk misinterpreting a banal failure as a recursive move-into-self failure. Reported by Florent Bayle in <http://bugs.debian.org/376749>.
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
2006-07-05 Jim Meyering <jim@meyering.net>
|
||||
|
||||
* src/copy.c (copy_internal): Don't work around old NFS clients like
|
||||
SunOS-4.1.4 and Irix 5.3 that set errno to values like EIO and
|
||||
ENOTEMPTY upon failed rename. Otherwise, we risk misinterpreting
|
||||
a banal failure as a recursive move-into-self failure.
|
||||
Reported by Florent Bayle in <http://bugs.debian.org/376749>.
|
||||
|
||||
* src/c99-to-c89.diff: Regenerate, to remove fuzz.
|
||||
|
||||
2006-07-03 Jim Meyering <jim@meyering.net>
|
||||
|
||||
1
THANKS
1
THANKS
@@ -154,6 +154,7 @@ Felix Lee flee@teleport.com
|
||||
Felix Rauch Valenti frauch@cse.unsw.edu.au
|
||||
Ferdinand fw@scenic.mine.nu
|
||||
Fletcher Mattox fletcher@cs.utexas.edu
|
||||
Florent Bayle florent@sarcelle.net
|
||||
Florin Iucha fiucha@hsys.mic.ro
|
||||
Francesco Montorsi fr_m@hotmail.com
|
||||
François Pinard pinard@iro.umontreal.ca
|
||||
|
||||
13
src/copy.c
13
src/copy.c
@@ -1385,18 +1385,7 @@ copy_internal (char const *src_name, char const *dst_name,
|
||||
|
||||
/* This happens when attempting to rename a directory to a
|
||||
subdirectory of itself. */
|
||||
if (errno == EINVAL
|
||||
|
||||
/* When src_name is on an NFS file system, some types of
|
||||
clients, e.g., SunOS4.1.4 and IRIX-5.3, set errno to EIO
|
||||
instead. Testing for this here risks misinterpreting a real
|
||||
I/O error as an attempt to move a directory into itself, so
|
||||
FIXME: consider not doing this. */
|
||||
|| errno == EIO
|
||||
|
||||
/* And with SunOS-4.1.4 client and OpenBSD-2.3 server,
|
||||
we get ENOTEMPTY. */
|
||||
|| errno == ENOTEMPTY)
|
||||
if (errno == EINVAL)
|
||||
{
|
||||
/* FIXME: this is a little fragile in that it relies on rename(2)
|
||||
failing with a specific errno value. Expect problems on
|
||||
|
||||
Reference in New Issue
Block a user