[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug 984910] rm fails to detect errors in readdir(3)
From: |
Pádraig Brady |
Subject: |
Re: [Bug 984910] rm fails to detect errors in readdir(3) |
Date: |
Wed, 22 Jun 2016 15:54:07 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
On 22/06/16 14:47, P. Benie wrote:
> On Wed, 22 Jun 2016, Bernhard Voelker wrote:
>
>> On 06/22/2016 02:48 PM, Pádraig Brady wrote:
>>> On 22/06/16 13:18, Bernhard Voelker wrote:
>>>> Unfortunately, it seems we don't have test for fts.c, do we?
>>>
>>> Not that I know of.
>>> For effective testing of this you'd have to use something like cmocka,
>>> or more generically something like CharybdeFS
>>
>> For rm(1), we could add a gdb-based or LD_PRELOAD-based test. Current rm(1)
>> will fail to remove a recursive directory (because some files beneath the
>> directory hierarchy didn't get deleted)
>
> It was a recursive rm that made me start looking at this condition.
> Attached, please find the LD_PRELOAD that I used to simulate my buggy NFS
> server.
>
>> Obviously, many other packages usig FTS like find(1) are also affected.
>
> On the plus side, the fts programs are much easier to fix.
>
> My investigations show that readdir error checks in general are are rarely
> done, and if they are done, they are often done incorrectly. One program
> went into an infinite loop if readdir failed (it assumed that readdir
> would always make some progress each time) and another claimed that
> readdir doesn't report errors, which I doubt is true on any platform.
>
> Peter
>
Cool, I'll add that test in your name to coreutils.
thanks,
Pádraig
Re: [Bug 984910] rm fails to detect errors in readdir(3), Pádraig Brady, 2016/06/22