I looked at the mount-flatpak codebase and noticed some potential improvements for the future: - The code uses std::fs::write to write to files in the target directory. This is safe because the VM isn't running, but it might be better to use libpathrs. - The code doesn't validate the user-provided app ID, resulting in worse error messages than otherwise possible. App IDs are always D-Bus well-known names, so there is no risk of the rules changing in future versions of Flatpak. - Passing something that isn't a flatpak repository as a parameter will result in a confusing "no such file or directory" error. - Various checks for corrupt repositories could be added, such as: - Wrong number of slashes in "current" symlink. - Wrong number of slashes in runtime path. - Bad "active" symlink. - The code that resolves the "active" symlink is duplicated. - The target mount point is not made "noexec". - mount_setattr() is called on a directory FD. I suspect this changes parameters of the source mount. It might be better to use open_tree_attr() with OPEN_TREE_CLONE instead. Which, if any, of these ideas would make sense to include? -- Sincerely, Demi Marie Obenour (she/her/hers)