* Neil Horman: > On Thu, Jan 02, 2020 at 02:35:22PM +0100, Florian Weimer wrote: >> * Damian Ivanov: >> >> > I could not find any information if having the socket length limited >> > is still something that is required nowadays as it seems this is >> > mostly for compatibility reasons? >> >> I don't know why the kernel limits the socket length. There is no >> strict requirement to do so because the userspace interfaces all have >> explicit lengths. struct sockaddr_un has a fixed-size buffer, but >> that could be worked around, similar to struct dirent. >> > The kernel doesn't limit this length for any particular technical > reason, it limits it as a matter of maintaining ABI compatibility. > When the unix address family was written back in the 80's, they > decided that the sun_path component was coded to a length of 108 > bytes, and so that is now part of the ABI, and can't be changed. > Any systemcall expecting a strict 108 byte path may encounter what > would appear to be an unterminated string, even if the only thing > you did was lengthen the path name. The kernel would return an error in this case. It would be similar to readlink with a buffer that is to small. The situation is actually far more benign than with struct dirent, where the kernel happily returns data that does not fit in the d_name array. _______________________________________________ kernel mailing list -- kernel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to kernel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kernel@xxxxxxxxxxxxxxxxxxxxxxx