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 think you're right. The added complexity (both here and in each client) is not worth the theoretical gain in error-handling uniformity. If new tests induce false-positive failure due to differences in how reading from a directory works under the covers, we can deal with it in the tests. Thanks!