[HEADSUP] Disallowing read() of a directory fd

Don Lewis truckman at FreeBSD.org
Thu May 14 23:53:19 UTC 2020


On 14 May, Cy Schubert wrote:
> In message <CACNAnaFszg+QWPRS0kghsnQMxXc+5niPTTNiUPSmK60YyBGCzA at mail.gmail.c
> om>
> , Kyle Evans writes:
>> Hi,
>>
>> This is a heads up, given that I'm completely flipping our historical
>> behavior- I intend to commit this review in a couple days' time
>> without substantial objection: https://reviews.freebsd.org/D24596
>>
>> With this, FreeBSD 13 will not allow read() of a directory fd, which
>> could have previously returned some data from the underlying
>> filesystem in no particular standardized format.
>>
>> This is a still-standards-compliant switch from one
>> implementation-defined behavior to another that's already been adopted
>> in various other popular kernels, to include OpenBSD, MacOS, and
>> Linux.
>>
>> Worth noting is that there's not really one largely-compelling reasons
>> to switch this after so many years (unless you find yourself that
>> irate when you accidentally `cat` a directory), but there are some
>> benefits which are briefly discussed in the commentary around the
>> review along with the history of the current behavior.
>>
>> This change also simplifies filesystem implementations to some extent.
> 
> OpenBSD has done this for a while and more importantly Linux.

Which causes annoying noise to stderr if you 'grep something *' if there
are directories in the working directory.




More information about the freebsd-arch mailing list