GNU bug report logs -
#8154
du: issue with `--files0-from=DIR'
Previous Next
Reported by: Stefan Vargyas <stvar <at> yahoo.com>
Date: Wed, 2 Mar 2011 14:23:01 UTC
Severity: normal
Fixed in version 8.11
Done: Pádraig Brady <P <at> draigBrady.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Jim,
Maybe you would consider appropriate to keep 'wc.c' in sync with 'du.c':
with respect to 'argv_iter' processing, both files had similar code
patterns. Padraig indirectly suggested this too above in the thread.
Stefan.
> Date: Wed, 02 Mar 2011 16:26:03 +0100
> From: Jim Meyering <jim <at> meyering.net>
> Subject: Re: bug#8154: du: issue with `--files0-from=DIR'
>
> [...]
>
> I've taken the opportunity (of this new label) to move the test
> for EOF into the case alongside the other AI_ERR_* values:
>
> diff --git a/src/du.c b/src/du.c
> index 671cac7..6270092 100644
> --- a/src/du.c
> +++ b/src/du.c
> @@ -889,6 +889,8 @@ main (int argc, char **argv)
> quote (files_from));
>
> ai = argv_iter_init_stream (stdin);
> + if (ai == NULL && errno == EISDIR)
> + error (EXIT_FAILURE, errno, _("invalid file: %s"), quote
> (files_from));
>
> /* It's not easy here to count the arguments, so assume the
> worst. */
> @@ -926,15 +928,17 @@ main (int argc, char **argv)
> bool skip_file = false;
> enum argv_iter_err ai_err;
> char *file_name = argv_iter (ai, &ai_err);
> - if (ai_err == AI_ERR_EOF)
> - break;
> if (!file_name)
> {
> switch (ai_err)
> {
> + case AI_ERR_EOF:
> + goto argv_iter_done;
> +
> case AI_ERR_READ:
> error (0, errno, _("%s: read error"), quote (files_from));
> - continue;
> + ok = false;
> + goto argv_iter_done;
>
> case AI_ERR_MEM:
> xalloc_die ();
> @@ -985,6 +989,7 @@ main (int argc, char **argv)
> ok &= du_files (temp_argv, bit_flags);
> }
> }
> + argv_iter_done:
>
> argv_iter_free (ai);
> di_set_free (di_set);
This bug report was last modified 14 years and 64 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.