On Sat, 30 Aug 2025 at 00:33, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > So... Siddhesh, could you clarify the claim about breaking getmntent(3)? > Does it or does it not happen on every system that has readonly AFS > volumes mounted? Hmm. Looking at various source trees using Debian code search, at least dietlibc doesn't treat '#' specially at all. And glibc seems to treat only a line that *starts* with a '#' (possibly preceded by space/tab combinations) as an empty line. klibc checks for '#' at the beginning of the file (without any potential space skipping before) Busybox seems to do the same "skip whitespace, then skip lines starting with '#'" that glibc does. So I think the '#'-escaping logic is wrong. We should only escape '#' marks at the beginning of a line (since we already escape spaces and tabs, the "preceded by whitespace" doesn't matter). And that means that we shouldn't do it in 'mangle()' at all - because it's irrelevant for any field but the first. And the first field in /proc/mounts is that 'r->mnt_devname' (or show_devname), and again, that should only trigger on the first character, not every character. Now, could there be other libraries that get this even worse wrong? Of course. But Linus