Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ repository = "https://github.com/NVIDIA/OpenShell"
# Product backend selection. Consumer crates inherit this choice.
openshell-crypto = { path = "crates/openshell-crypto", default-features = false, features = ["aws-lc"] }
# Async runtime
tokio = { version = "1.43", features = ["full"] }
tokio = { version = "1.53.3", features = ["full"] }

# gRPC/Protobuf
tonic = "0.14"
Expand Down
2 changes: 1 addition & 1 deletion crates/openshell-sandbox-backend/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0

#![forbid(unsafe_code)]
#![deny(unsafe_code)]

//! Concrete supervisor-side client for the Isolation Backend and Sandbox Protocol RPCs.
//!
Expand Down
6 changes: 5 additions & 1 deletion crates/openshell-sandbox-backend/src/runtime_initiated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -255,8 +255,12 @@ impl Listener {
socket.set_nonblocking(true)?;
socket.bind(&socket2::SockAddr::vsock(libc::VMADDR_CID_ANY, port))?;
socket.listen(64)?;
// SAFETY: `socket` owns a valid descriptor and is moved into AsyncFd.
// The descriptor is never closed or replaced while registered.
#[allow(unsafe_code)]
let listener = unsafe { tokio::io::unix::AsyncFd::register(socket)? };
Ok(Self::Vsock {
listener: tokio::io::unix::AsyncFd::new(socket)?,
listener,
guest_cid,
})
}
Expand Down
7 changes: 6 additions & 1 deletion crates/openshell-sandbox/src/main_session.rs
Original file line number Diff line number Diff line change
Expand Up @@ -560,7 +560,12 @@ impl MainSession {
) {
match io {
ProcessIo::Pty(master) => {
let master = Arc::new(AsyncFd::new(master).expect("register canonical PTY master"));
// SAFETY: `master` owns a valid PTY descriptor and is moved into AsyncFd.
// The descriptor is never closed or replaced while registered.
#[allow(unsafe_code)]
let master =
unsafe { AsyncFd::register(master) }.expect("register canonical PTY master");
let master = Arc::new(master);
let reader = Arc::clone(&master);
let output = Arc::clone(this);
tokio::spawn(async move {
Expand Down
3 changes: 2 additions & 1 deletion crates/openshell-server/src/grpc/sandbox.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9378,7 +9378,8 @@ mod tests {
update_sandbox_cas(&state, &sandbox_id, 0, |sandbox| {
if first_attempt {
first_attempt = false;
barrier.wait();
// Hand off queued work so SQLx can return the connection to other writers.
tokio::task::block_in_place(|| barrier.wait());
}
let annotations = &mut sandbox.metadata.as_mut().unwrap().annotations;
let count = annotations
Expand Down
4 changes: 4 additions & 0 deletions deny.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ ignore = [
{ id = "RUSTSEC-2026-0204", reason = "crossbeam-epoch pointer deref — transitive via metrics/quanta" },
{ id = "RUSTSEC-2023-0071", reason = "rsa Marvin attack — transitive via spiffe, no direct exposure" },
{ id = "RUSTSEC-2025-0134", reason = "rustls-pemfile unmaintained — transitive via older kube/hyper" },
# SPIFFE's jsonwebtoken RustCrypto stack still requires crypto-bigint 0.5.
# Remove after compatible upstream releases include the dependency upgrade:
# https://github.com/Keats/jsonwebtoken/pull/536
{ id = "RUSTSEC-2026-0387", reason = "crypto-bigint 0.5.5 timing variability — transitive via SPIFFE/jsonwebtoken; remove when the dependency chain supports crypto-bigint >=0.7.6" },
# zip is used only by z3-sys's build script with prebuilt-z3 enabled to
# extract upstream Z3 GitHub release assets, never runtime/user archives.
# Accept the build-time risk of a compromised upstream release asset until
Expand Down
4 changes: 2 additions & 2 deletions e2e/rust/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions examples/governance-interceptor/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions examples/supervisor-middleware-content-guard/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions tests/suites/conformance/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions tests/suites/drivers/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions tests/suites/features/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions tests/testkit/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions tests/tmachine/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading