[Bug 275871] [unionfs] [nullfs] [zfs] corrupt filesystem

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 21 Dec 2023 19:29:17 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275871

            Bug ID: 275871
           Summary: [unionfs] [nullfs] [zfs] corrupt filesystem
           Product: Base System
           Version: 14.0-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: karlo98.m@gmail.com

I stumbled upon a way to reliably create files with "/" in their names in
FreeBSD 14.0.
It works fine when using UFS or FreeBSD 13.
The filesystem works fine with those files - they are just impossible to
destroy or access apart from destroying them with zfs operations (rollback or
destroy).

I provide a small script that produces a file named "a/b" in directory
"/var/repro/y":

#!/bin/sh
zfs destroy zroot/var/repro
zfs create zroot/var/repro
mkdir -p /var/repro/z/a
echo > /var/repro/z/a/b
chmod +x /var/repro/z/a/b
mkdir -p /var/repro/x
mkdir -p /var/repro/y
mount_nullfs /var/repro/z /var/repro/x
mount_unionfs /var/repro/y /var/repro/x
/var/repro/x/a/b
umount /var/repro/x
umount /var/repro/x
rmdir /var/repro/x
rm -r /var/repro/z
ls -Rl /var/repro/y

IMPORTANT: If you 'ls' /var/repro/x/a/b before executing it everything works
fine.

NOTE:
I stumbled upon this when trying to run IMUNES
(https://github.com/imunes/imunes) on the newest release.
Currently, this bug is blocking the project from porting to 14.0.

-- 
You are receiving this mail because:
You are the assignee for the bug.