Making a magic deduplicating tar using the FICLONE ioctl

Опубликовано: 13 Сентябрь 2023
на канале: All Systems Go!
208
6

https://media.ccc.de/v/all-systems-go...



A walkthrough of an interesting use case for the `FICLONE` ioctl: cloning file data into a tar archive, and cloning files out of it again. "Free" archiving and unarchiving at zero-copy speeds!
Topics:

Copy-on-write and the `FICLONE` ioctl
The ancient `tar` format
A trick for adding arbitrary padding to the `tar` format in order to force file system page alignment
How to avoid symlink attacks and other TOCTOU issues, using the fairly recently introduced (linux 5.6) `openat2` system call.
An interesting bug in GNU tar

At the end you'll receive a free autographed copy of [deduptar](https://git.sr.ht/~nullenenenen/dedup...) to use for party tricks. 🥳



Wicher Minnaard

https://cfp.all-systems-go.io/all-sys...

#asg2023