Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: bytecodealliance/rustix
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.36.15
Choose a base ref
...
head repository: bytecodealliance/rustix
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.36.17
Choose a head ref
  • 9 commits
  • 14 files changed
  • 2 contributors

Commits on Oct 12, 2023

  1. Merge pull request from GHSA-c827-hfw6-qwvm

    * Fix `rustix::fs::Dir` to avoid unbounded buffer growth.
    
    Fix `Dir`'s buffer size computation to avoid resizing past a fixed
    upper limit. This prevents it from growing without bound, such as in
    the case of `Dir::rewind` for repeated iterations with the same `Dir`.
    
    * Don't let `Dir` continue to try to iterate after a failure.
    
    * Handle `io::Errno::INTR` gracefully.
    
    * Write a more detailed comment on the buffer growth policy.
    
    * Also mention that no buffer can ever be big enough for everything.
    
    * Add tests against over-allocation & stuck iterator
    
    * Rm `dir_iterator_does_not_overallocate` unit test in favour of docs
    
    * Extend `test_dir` to cover `rewind`.
    
    * Consistently handle directory removal as ending the stream.
    
    libc implementations of directory iteration handle directory removal
    by just ending the stream. In the linux_raw backend, this looks like
    `ENOENT` from `getdents64`, so change the code to check for `ENOENT`
    and end the stream.
    
    This requires changing the `dir_iterator_does_not_get_stuck_on_io_error`
    test to no longer expect a failure, so it's now renamed to
    `dir_iterator_handles_dir_removal`.
    
    To test the error case, add a new `dir_iterator_handles_io_errors`
    test which uses `dup2` to induce an error, in both the linux_raw and
    libc backends.
    
    This exposes the fact that the libc `Dir` implementation was also
    assuming that users would stop iterating after hitting a failure, so
    add a `any_errors` flag to the libc backend as well.
    
    * Add a test for removing the directory after doing `read_from`.
    
    * In the libc backend, handle `ENOENT` when opening ".".
    
    ---------
    
    Co-authored-by: cyqsimon <28627918+cyqsimon@users.noreply.github.com>
    sunfishcode and cyqsimon committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    87481a9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    739f9c3 View commit details
    Browse the repository at this point in the history
  3. Disable MIPS in CI. (#793)

    * Disable MIPS in CI.
    
    Enable check-only testing.
    
    * Unpin nightly.
    
    * Disable MIPS check tests too.
    
    * Mention `rusl` as another similar crate.
    
    * Fix a test on illumos.
    sunfishcode committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    ded8986 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    6dc7ba9 View commit details
    Browse the repository at this point in the history
  5. Fix the test_ttyname_ok test when /dev/stdin is inaccessable. (#821)

    /dev/stdin may be inaccessible in some sandboxed configurations, so just
    gracefully return if opening it fails.
    sunfishcode committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    8cc159c View commit details
    Browse the repository at this point in the history
  6. Disable riscv64 testing.

    The tests currently fail with link errors:
    
    /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0: unsupported ISA subset `z'
              /usr/lib/gcc-cross/riscv64-linux-gnu/9/../../../../riscv64-linux-gnu/bin/ld: failed to merge target specific data of file /home/runner/work/rustix/rustix/target/riscv64gc-unknown-linux-gnu/release/deps/rustix-de11d1cc9b23d8e9.rustix.57e81a24c389c933-cgu.1.rcgu.o
    sunfishcode committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    4928cf7 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    6534992 View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2023

  1. Fix p{read,write}v{,v2}'s encoding of the offset argument on Linux. (#…

    …896) (#898)
    
    Unlike with `p{read,write}`, Linux's `p{read,write}v` syscall's offset
    argument is not passed in an endian-specific order. And, the expectation is
    for syscall wrappers to always pass both the high and low halves of the
    offset as separate arguments, even though on 64-bit architectures the low
    half is passed throgh as a 64-bit value containing the full offset and the
    kernel doesn't mask it.
    
    And `p{read,write}v2` follow the behavior of `p{read,write}`.
    sunfishcode authored Oct 25, 2023
    Configuration menu
    Copy the full SHA
    1c6013a View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2023

  1. Configuration menu
    Copy the full SHA
    76c998c View commit details
    Browse the repository at this point in the history
Loading