Skip to content

libpathrs v0.2.2 -- "貴様ら全員刀の錆にしてやるぜ。"

Choose a tag to compare

@cyphar cyphar released this 24 Nov 16:07
· 217 commits to main since this release
v0.2.2
f80a242

This is a minor release of libpathrs which includes some improvements to
our openat2(2) fallback handling (necessary for runc and adapted from a
similar change to pathrs-lite), as well as minor improvements to "cargo
test" runs -- making the default %check RPM scriptlets work properly out
of the box.

Changed

  • Add _test_race feature to allow you to opt-out of the race tests when
    testing with cargo test (which resolves the spurious EAGAIN failures you
    get with naive cargo test and cargo nextest runs, along with making the
    whole test run ~50x faster).

Fixed

  • Previously, cargo test runs would fail with errors due to the unique
    execution environment that cargo nextest provides. We have resolved those
    differences and now have smoke tests in our CI to make sure that a naive
    cargo test run will succeed.
  • libpathrs will now apply the same openat2 retry logic for any usage of
    openat2 (for scoped lookups), to further improve resiliency on busy
    systems.
  • Our logic for deciding whether to use openat2(2) or fallback to an O_PATH
    resolver would cache the result to avoid doing needless test runs of
    openat2(2). However, this causes issues when libpathrs is being used by a
    program that applies new seccomp-bpf filters onto itself -- if the filter
    denies openat2(2) then we would return that error rather than falling back
    to the O_PATH resolver. To resolve this issue, we have introduced more
    flexible fallback mechanisms and no longer cache the result if openat2(2)
    was successful (only if there was an error).

Thanks to the following contributors for making this release possible:

Signed-off-by: Aleksa Sarai cyphar@cyphar.com