[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#15249: "ls -R" may exit with invalid status code
From: |
FUJIWARA Katsunori |
Subject: |
bug#15249: "ls -R" may exit with invalid status code |
Date: |
Mon, 02 Sep 2013 21:41:06 +0900 |
User-agent: |
Wanderlust/2.15.7 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (Gojō) APEL/10.7 Emacs/22.3 (i386-msvc-nt6.1.7601) MULE/5.0 (SAKAKI) Meadow/3.02-dev (RINDOU) (2009-06-17 Rev.4261) |
With recent "src/ls.c" implementation of coreutils, "ls -R" may exit
with invalid status code LS_FAILURE, even when it should exit with
LS_MINOR_PROBLEM, which means some failure for files/directories in
sub-directories.
Technical detail:
"command_line_arg" argument of "gobble_file()" invocation in
"print_dir()" is always "false", because it is invoked for
files/directories under target directory: they never be command line
argument.
In the other hand, "command_line_arg" argument of
"extract_dirs_from_files()" invocation in "print_dir()" is equal to
"command_line_arg" of "print_dir()", even though directories under
target one never be command line argument.
This causes that every sub-directories in recursive listing are
treated as command line argument, and "serious" argument of
"file_failure()" invocation for them becomes "true" unexpectedly.
Then, "ls -R" will exit with invalid status code LS_FAILURE, when
some failure occur for files/directories in sub-directories.
The change below should fix this issue.
diff --git a/src/ls.c b/src/ls.c
index e341c67..08e86ce 100644
--- a/src/ls.c
+++ b/src/ls.c
@@ -2647,7 +2647,7 @@ print_dir (char const *name, char const *realname, bool
command_line_arg)
contents listed rather than being mentioned here as files. */
if (recursive)
- extract_dirs_from_files (name, command_line_arg);
+ extract_dirs_from_files (name, false);
if (format == long_format || print_block_size)
{
----------------------------------------------------------------------
[FUJIWARA Katsunori] address@hidden
- bug#15249: "ls -R" may exit with invalid status code,
FUJIWARA Katsunori <=