Fix host /dev/pts unmount during overlayfs cleanup #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Unmounting overlayfs with bind mounts to
/dev/ptswas unmounting the host's/dev/pts, breaking system-wide PTY allocation (sudo: unable to allocate pty,forkpty() failed).Root Cause
do_unmount()usedumount2(MNT_DETACH)unconditionally. For recursive bind mounts (MS_REC), lazy unmount can affect the source mount. No path validation prevented unmounting host directories.Changes
Safe unmount strategy:
umount()without flags as primary methodMNT_DETACHonly forEBUSYwith warningPath validation:
ValidateResultenum:Valid(PathBuf),AlreadyUnmounted,ValidationFailed(Error)../traversal attacksNotFound= already unmounted)Security:
/mnt/overlay/../dev/pts→ resolved to/dev/pts→ rejectedFiles Changed
project/libfuse-fs/src/util/bind_mount.rs: Rewritten unmount logic, addedValidateResultenum and validation helperOriginal prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.