{"record":{"id":"0a1639ab514e2865","repo":"zed-industries/zed","slug":"paths-may-not-contain-interior-null-bytes","errorCode":null,"errorMessage":"paths may not contain interior null bytes","messagePattern":"paths may not contain interior null bytes","errorType":"validation","errorClass":"std::io::Error","httpStatus":null,"severity":"error","filePath":"crates/net/src/util.rs","lineNumber":35,"sourceCode":"        if result != 0 {\n            panic!(\"WSAStartup failed: {}\", result);\n        }\n    });\n}\n\n// https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/\npub(crate) fn sockaddr_un<P: AsRef<Path>>(path: P) -> Result<(SOCKADDR_UN, usize)> {\n    let mut addr = SOCKADDR_UN::default();\n    addr.sun_family = ADDRESS_FAMILY(AF_UNIX);\n\n    let bytes = path\n        .as_ref()\n        .to_str()\n        .map(|s| s.as_bytes())\n        .ok_or(ErrorKind::InvalidInput)?;\n\n    if bytes.contains(&0) {\n        return Err(Error::new(\n            ErrorKind::InvalidInput,\n            \"paths may not contain interior null bytes\",\n        ));\n    }\n    if bytes.len() >= addr.sun_path.len() {\n        return Err(Error::new(\n            ErrorKind::InvalidInput,\n            \"path must be shorter than SUN_LEN\",\n        ));\n    }\n\n    unsafe {\n        std::ptr::copy_nonoverlapping(\n            bytes.as_ptr(),\n            addr.sun_path.as_mut_ptr().cast(),\n            bytes.len(),\n        );\n    }","sourceCodeStart":17,"sourceCodeEnd":53,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/net/src/util.rs#L17-L53","documentation":"The Unix-domain socket path contains a NUL byte, which cannot be represented in the fixed SOCKADDR_UN sun_path buffer (the address would be silently truncated). sockaddr_un rejects it as invalid input.","triggerScenarios":"Thrown at crates/net/src/util.rs:35 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Reject or sanitize paths containing NUL bytes before creating sockets","Use a shorter, clean path for the socket file"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}