sockaddr_un.sun_path should not use UNIX_PATH_MAX
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
lsb |
Fix Committed
|
Medium
|
Unassigned | ||
Mandriva |
Fix Released
|
Medium
|
Bug Description
(from bug 3156 comment 18) devchk complaint on the native value of
UNIX_PATH_MAX being undefined.
POSIX now says this:
DESCRIPTION
The <sys/un.h> header shall define the sockaddr_un structure, which
shall include at least the following members:
char sun_path[] Socket pathname.
The sockaddr_un structure is used to store addresses for UNIX
domain sockets. Values of this type shall be cast by applications
to struct sockaddr for use with socket functions.
The <sys/un.h> header shall define the sa_family_t type as
described in <sys/socket.h>.
APPLICATION USAGE
The size of sun_path has intentionally been left undefined. This is
because different implementations use different sizes. For example, 4.3 BSD
uses a size of 108, and 4.4 BSD uses a size of 104. Since most implementations
originate from BSD versions, the size is typically in the range 92 to 108.
assume that it can hold {_POSIX_PATH_MAX} bytes (256).
While our partly problematic definition is:
struct sockaddr_un {
sa_family_t sun_family; /* AF_UNIX */
char sun_path[
};
seems like we have no particular need to define UNIX_PATH_MAX, we could just
match the generic glibc definition, which is:
char sun_path[108]; /* Path name. */
[reply] [-] Comment 1
Changed in mandriva: | |
importance: | Unknown → Medium |
status: | Unknown → Fix Released |