* Simon Josefsson: >> Suppose that a package wants to create a UNIX domain socket as part of >> its test suite. If the socket is created within the package build >> directory, this might fail because of the quite low path name length >> limit. What is the correct way of dealing with this? "mktemp -d" uses >> TMPDIR, which is potentially affected by the same issue. >> >> (My personal opinion is "fix the buildd", especially since none of the >> official buildds seems to use long path names, but there is >> disagreement.) > > Can't the low path name length limit be fixed? What restricts the > length? Kernel, libc, filesystem, ...?
It's part of the API: /* Structure describing the address of an AF_LOCAL (aka AF_UNIX) socket. */ struct sockaddr_un { __SOCKADDR_COMMON (sun_); char sun_path[108]; /* Path name. */ }; I haven't checked if the Linux kernel actually cares about the actually length of this data structure (there are explicit length fields in all cases), but I guess it should work. However, this might not be portable to the Hurd or kfreebsd. In a larger context, there is sockaddr_storage, which indirectly imposes a limit (because getpeername must complete when passed a sockaddr_storage argument, for instance). Overlong UNIX domain sockets might break some libraries that rely on that functionality. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]