On 2025-01-13 Bruno Haible via Gnulib discussion list wrote:
> Without your patch, an application has the guarantee that when one of
> the file system APIs has returned a file name, the other file system
> APIs will be able to handle it (ignoring ENAMETOOLONG cases, which
> rarely occur in practice). Your patch breaks this guarantee.

The first version of the patch had bad bugs. I apologize if those bugs
gave you the above impression.

My patch to readdir() makes it use EOVERFLOW with names that cannot be
correctly converted. The other names are returned identically to the
old code, except that the patched code is also able to return longer
names instead of failing with EIO.

Some modules like "open" handle those long names without changes (works
fine in gzip). But since the long name support is the only difference
in names that are actually returned, I suppose this is where the
guarantee you mentioned is broken.

> Therefore my request to do this change of conversion on *all* file
> system APIs, or on none.

Understood. At least the stat module could be fixed to give it long
name support. Other modules could be verified for long name support
too. Perhaps EOVERFLOW handling is also worth checking. This is too much
for me in the foreseeable future, so if it means that the current patch
isn't usable alone, then that's how it is. The feedback I have received
has still been useful.

-- 
Lasse Collin

Reply via email to