From 09e5cb57a0c837c0c442668a8dacea19a1d9522a Mon Sep 17 00:00:00 2001 From: "Jonathan T. Looney" Date: Tue, 14 Apr 2020 15:27:24 +0000 Subject: [PATCH] Make the path length of UNIX domain sockets specified by a #define. Also, add a comment describing the historical context for this length. Reviewed by: bz, jhb, kbowling (previous version) MFC after: 2 weeks Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D24272 --- newlib/libc/sys/rtems/include/sys/un.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/newlib/libc/sys/rtems/include/sys/un.h b/newlib/libc/sys/rtems/include/sys/un.h index f83652e07..3c408628c 100644 --- a/newlib/libc/sys/rtems/include/sys/un.h +++ b/newlib/libc/sys/rtems/include/sys/un.h @@ -43,13 +43,21 @@ typedef __sa_family_t sa_family_t; #define _SA_FAMILY_T_DECLARED #endif +/* + * Historically, (struct sockaddr) needed to fit inside an mbuf. + * For this reason, UNIX domain sockets were therefore limited to + * 104 bytes. While this limit is no longer necessary, it is kept for + * binary compatibility reasons. + */ +#define SUNPATHLEN 104 + /* * Definitions for UNIX IPC domain. */ struct sockaddr_un { unsigned char sun_len; /* sockaddr len including null */ sa_family_t sun_family; /* AF_UNIX */ - char sun_path[104]; /* path name (gag) */ + char sun_path[SUNPATHLEN]; /* path name (gag) */ }; #if __BSD_VISIBLE