mirror of
https://https.git.savannah.gnu.org/git/coreutils.git
synced 2026-01-27 01:44:21 +00:00
chmod: don't ignore a dangling symlink
* NEWS: Mention the bug fix. * src/chmod.c (process_file): Handle the case of FTS_SLNONE, i.e., give a diagnostic saying we cannot operate on such a file. * tests/chmod/thru-dangling: Compare new stderr output with expected.
This commit is contained in:
parent
e70487cda7
commit
500eccdbe4
@ -1,3 +1,11 @@
|
||||
2007-09-07 Jim Meyering <jim@meyering.net>
|
||||
|
||||
chmod: don't ignore a dangling symlink
|
||||
* NEWS: Mention the bug fix.
|
||||
* src/chmod.c (process_file): Handle the case of FTS_SLNONE,
|
||||
i.e., give a diagnostic saying we cannot operate on such a file.
|
||||
* tests/chmod/thru-dangling: Compare new stderr output with expected.
|
||||
|
||||
2007-09-07 Bob Proulx <bob@proulx.com>
|
||||
|
||||
Add a test: demonstrate that chmod ignores a dangling symlink
|
||||
|
||||
4
NEWS
4
NEWS
@ -70,6 +70,10 @@ GNU coreutils NEWS -*- outline -*-
|
||||
|
||||
** Bug fixes
|
||||
|
||||
chmod no longer ignores a dangling symlink. Now, chmod fails
|
||||
with a diagnostic saying that it cannot operate on such a file.
|
||||
[bug introduced in coreutils-5.1.0]
|
||||
|
||||
cp attempts to read a regular file, even if stat says it is empty.
|
||||
Before, "cp /proc/cpuinfo c" would create an empty file when the kernel
|
||||
reports stat.st_size == 0, while "cat /proc/cpuinfo > c" would "work",
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/* chmod -- change permission modes of files
|
||||
Copyright (C) 89, 90, 91, 1995-2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 89, 90, 91, 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
|
||||
@ -220,6 +220,11 @@ process_file (FTS *fts, FTSENT *ent)
|
||||
ok = false;
|
||||
break;
|
||||
|
||||
case FTS_SLNONE:
|
||||
error (0, 0, _("cannot operate on dangling symlink %s"),
|
||||
quote (file_full_name));
|
||||
ok = false;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@ -40,6 +40,10 @@ fi
|
||||
fail=0
|
||||
|
||||
# This operation cannot succeed since the symbolic link dangles.
|
||||
chmod 644 dangle && fail=1
|
||||
chmod 644 dangle 2> out && fail=1
|
||||
|
||||
echo "chmod: cannot operate on dangling symlink \`dangle'" > exp
|
||||
cmp out exp || fail=1
|
||||
test $fail = 1 && diff out exp 2> /dev/null
|
||||
|
||||
(exit $fail); exit $fail
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user