Making a magic deduplicating tar using the FICLONE ioctl
2023-09-13, 17:00–17:25 (Europe/Berlin), Dome

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 to use for party tricks. 🥳

Computer forensic investigator turned software engineer.
I enjoy looking under the hood of pretty much anything.

Currently working as a backend engineer with Django+PostgreSQL, plus Android app development, network engineering, and any odd-size problems that come my way thrown in.