Environment names are created based on file paths, this call
|
if err := unix.Bind(fd, &unix.SockaddrUnix{Name: path}); err != nil { |
|
unix.Close(fd) |
|
return nil, fmt.Errorf("bind pty socket %s: %v", path, err) |
|
} |
can fail, because SockaddrUnix.sockaddr called by Bind fails length check against RawSockaddrUnix.Path size of 108.
For example:
$ drop run zsh
Error: bind pty socket /home/p2004a/.local/share/drop/internal/run/home-p2004a-Workspace-BAR-info.beyondallreason.bar-3001133669/pty.sock: invalid argument
Environment names are created based on file paths, this call
drop/internal/ipc/ptysocket.go
Lines 60 to 63 in 8ce1c1e
can fail, because
SockaddrUnix.sockaddrcalled byBindfails length check againstRawSockaddrUnix.Pathsize of 108.For example: