zed-industries/zed · error · std::io::Error
path must be shorter than SUN_LEN
Error message
path must be shorter than SUN_LEN
What it means
Raised in sockaddr_un() (Windows AF_UNIX): the Unix-socket path is at least as long as the sun_path buffer, so it cannot be represented in a sockaddr_un and the bind/connect fails with this input error.
Source
Thrown at crates/net/src/util.rs:41
// https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
pub(crate) fn sockaddr_un<P: AsRef<Path>>(path: P) -> Result<(SOCKADDR_UN, usize)> {
let mut addr = SOCKADDR_UN::default();
addr.sun_family = ADDRESS_FAMILY(AF_UNIX);
let bytes = path
.as_ref()
.to_str()
.map(|s| s.as_bytes())
.ok_or(ErrorKind::InvalidInput)?;
if bytes.contains(&0) {
return Err(Error::new(
ErrorKind::InvalidInput,
"paths may not contain interior null bytes",
));
}
if bytes.len() >= addr.sun_path.len() {
return Err(Error::new(
ErrorKind::InvalidInput,
"path must be shorter than SUN_LEN",
));
}
unsafe {
std::ptr::copy_nonoverlapping(
bytes.as_ptr(),
addr.sun_path.as_mut_ptr().cast(),
bytes.len(),
);
}
let mut len = sun_path_offset(&addr) + bytes.len();
match bytes.first() {
Some(&0) | None => {}
Some(_) => len += 1,
}View on GitHub (pinned to f4178619ac)
Solutions
- Shorten the socket path (e.g. use a shorter temp directory or socket name)
- Hash or truncate long identifiers when composing the socket filename
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/net/src/util.rs:41 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/7c2a0fe4f2e94641.
Report an issue: GitHub.