lsb

sockaddr_un.sun_path should not use UNIX_PATH_MAX

Bug #1327331 reported by Jeff Johnson
6
This bug affects 1 person
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:

            sa_family_t sun_family Address family.
            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.

            Applications should not assume a particular length for sun_path or
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[UNIX_PATH_MAX];
    };

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

Tags: sdk uplift
Changed in mandriva:
importance: Unknown → Medium
status: Unknown → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.