Skip to content

v5: osfs: ChrootOS eval baseDir on creation#205

Merged
pjbgf merged 2 commits into
go-git:releases/v5.xfrom
pjbgf:v5-improvements
May 6, 2026
Merged

v5: osfs: ChrootOS eval baseDir on creation#205
pjbgf merged 2 commits into
go-git:releases/v5.xfrom
pjbgf:v5-improvements

Conversation

@pjbgf

@pjbgf pjbgf commented May 6, 2026

Copy link
Copy Markdown
Member

Fixes a regression added by #203 that would return chroot boundary crossed when a temporary dir was used in MacOS.

Copilot AI review requested due to automatic review settings May 6, 2026 05:54
Signed-off-by: Paulo Gomes <paulo@entire.io>
Signed-off-by: Paulo Gomes <paulo@entire.io>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses a regression introduced in #203 where osfs’s legacy ChrootOS could incorrectly return billy.ErrCrossedBoundary on macOS when the base directory (e.g., a temp dir) is a symlinked path (such as /var/.../private/var/...). It does so by resolving baseDir symlinks at filesystem creation time.

Changes:

  • Resolve baseDir via filepath.EvalSymlinks inside newChrootOS before constructing the chroot helper.
  • Add a unit test intended to ensure a symlinked chroot root does not trigger ErrCrossedBoundary for normal in-root operations.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

File Description
osfs/os_chroot.go Resolves the chroot base directory symlinks up-front to avoid macOS symlink path mismatches.
osfs/os_chroot_test.go Adds a regression test for using a symlinked directory as the chroot base.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread osfs/os_chroot_test.go
@pjbgf pjbgf merged commit 07f2a0b into go-git:releases/v5.x May 6, 2026
8 checks passed
@pjbgf pjbgf deleted the v5-improvements branch May 6, 2026 06:10
Maks1mS pushed a commit to stplr-dev/stplr that referenced this pull request May 10, 2026
This PR contains the following updates:

| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [github.com/go-git/go-billy/v5](https://github.com/go-git/go-billy) | require | minor | `v5.8.0` → `v5.9.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/go-git/go-billy/badge)](https://securityscorecards.dev/viewer/?uri=github.com/go-git/go-billy) |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/23) for more information.

---

### Release Notes

<details>
<summary>go-git/go-billy (github.com/go-git/go-billy/v5)</summary>

### [`v5.9.0`](https://github.com/go-git/go-billy/releases/tag/v5.9.0)

[Compare Source](go-git/go-billy@v5.8.0...v5.9.0)

#### What's Changed

- Use path.Clean instead of filepath.Clean in iofs.Open by [@&#8203;puerco](https://github.com/puerco) in [#&#8203;197](go-git/go-billy#197)
- Deprecate ChrootOS in favour of BoundOS by [@&#8203;pjbgf](https://github.com/pjbgf) in [#&#8203;201](go-git/go-billy#201)
- General Improvements by [@&#8203;pjbgf](https://github.com/pjbgf) in [#&#8203;203](go-git/go-billy#203)
- osfs: ChrootOS eval baseDir on creation by [@&#8203;pjbgf](https://github.com/pjbgf) in [#&#8203;205](go-git/go-billy#205)
- Run go-git tests as part of integration tests by [@&#8203;pjbgf](https://github.com/pjbgf) in [#&#8203;206](go-git/go-billy#206)

**Full Changelog**: <go-git/go-billy@v5.8.0...v5.9.0>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At 12:00 AM through 04:59 AM and 10:00 PM through 11:59 PM, Monday through Friday (`* 0-4,22-23 * * 1-5`)
  - Only on Sunday and Saturday (`* * * * 0,6`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzIuMyIsInVwZGF0ZWRJblZlciI6IjQzLjEzMi4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJLaW5kL0RlcGVuZGVuY2llcyJdfQ==-->

Reviewed-on: https://altlinux.space/stapler/stplr/pulls/426
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants