Hello David,

> We should not try and perform operations on an invalid DIR* stream.
> Instead, we shall let the error message be printed, and the return
> code set (existing behaviour) and abort afterwards.

Any justification you could provide us with?

AFAIK POSIX specifies the opposite, a diognostic message should be
issued on stderr and the utility should continue processing the
remaining of the operands/hierarchy.

> ---
>  ls.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/ls.c b/ls.c
> index 5080c8f..b716aba 100644
> --- a/ls.c
> +++ b/ls.c
> @@ -250,6 +250,7 @@ lsdir(const char *path, const struct entry *dir)
>       if (!(dp = opendir(dir->name))) {
>               ret = 1;
>               weprintf("opendir %s%s:", path, dir->name);
> +             return;
>       }
>       if (chdir(dir->name) < 0)
>               eprintf("chdir %s:", dir->name);


Reply via email to