Subject: bug#8154: du: issue with `--files0-from=DIR'

From: Pádraig Brady <[email-masked]>
Date: Wed, 02 Mar 2011 17:32:47 +0000

On 02/03/11 17:10, Paul Eggert wrote:
> On 03/02/2011 07:09 AM, Jim Meyering wrote:
>> -  struct argv_iterator *ai = malloc (sizeof *ai);
>> +  struct argv_iterator *ai;
>> +  struct stat st;
>> +
>> +  if (fstat (fileno (fp),&st) == 0&&  S_ISDIR (st.st_mode))
>> +    {
>> +      errno = EISDIR;
>> +      return NULL;
>> +    }
>> +
>> +  ai = malloc (sizeof *ai);
> 
> My kneejerk reaction is that this part of the patch
> should not be needed (though other fixes obviously are).
> There are lots of reasons that the stream could fail:
> why check for directories specially?  Just let the
> stream fail in the way that it normally would; this
> keeps the code smaller and simpler.  On an ancient
> host where "cat dir/" works, "du --files0-from=dir/"
> should not arbitrarily fail.

I thought that at first too, but it seems like
it might cause more issues that not, by allowing it?
Testing bsd here shows that valid NUL terminated file names
are returned, but also there is other info interspersed.

cheers,
Pádraig.