MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / prepare_private_socket_dir

Function prepare_private_socket_dir

crates/openshell-driver-vm/src/main.rs:311–342  ·  view source on GitHub ↗
(
    socket_dir: &Path,
    expected_uid: u32,
)

Source from the content-addressed store, hash-verified

309}
310
311fn prepare_private_socket_dir(
312 socket_dir: &Path,
313 expected_uid: u32,
314) -> std::result::Result<(), String> {
315 std::fs::create_dir_all(socket_dir)
316 .map_err(|err| format!("create socket dir {}: {err}", socket_dir.display()))?;
317 let metadata = std::fs::symlink_metadata(socket_dir)
318 .map_err(|err| format!("stat socket dir {}: {err}", socket_dir.display()))?;
319 let file_type = metadata.file_type();
320 if file_type.is_symlink() {
321 return Err(format!(
322 "socket dir {} is a symlink; refusing to use it",
323 socket_dir.display()
324 ));
325 }
326 if !file_type.is_dir() {
327 return Err(format!(
328 "socket dir {} is not a directory",
329 socket_dir.display()
330 ));
331 }
332 if metadata.uid() != expected_uid {
333 return Err(format!(
334 "socket dir {} is owned by uid {} but current euid is {}",
335 socket_dir.display(),
336 metadata.uid(),
337 expected_uid
338 ));
339 }
340 std::fs::set_permissions(socket_dir, std::fs::Permissions::from_mode(0o700))
341 .map_err(|err| format!("chmod socket dir {}: {err}", socket_dir.display()))
342}
343
344fn remove_stale_socket(socket_path: &Path, expected_uid: u32) -> std::result::Result<(), String> {
345 let metadata = match std::fs::symlink_metadata(socket_path) {

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected