bug-gnulib
[Top][All Lists]
Advanced

[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. Benie
Subject: Re: [Bug 984910] rm fails to detect errors in readdir(3)
Date: Wed, 22 Jun 2016 14:47:43 +0100 (BST)
User-agent: Alpine 2.00 (LSU 1167 2008-08-23)

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

Attachment: fake_readdir.c
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]