nxt_sockaddr.c (110:b367ad00650d) nxt_sockaddr.c (211:6738bb76ae0a)
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#include <nxt_main.h>
8

--- 48 unchanged lines hidden (view full) ---

57
58 size = length;
59 copy = length;
60
61#if (NXT_HAVE_UNIX_DOMAIN)
62
63 /*
64 * Unspecified Unix domain sockaddr_un form and length are very
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#include <nxt_main.h>
8

--- 48 unchanged lines hidden (view full) ---

57
58 size = length;
59 copy = length;
60
61#if (NXT_HAVE_UNIX_DOMAIN)
62
63 /*
64 * Unspecified Unix domain sockaddr_un form and length are very
65 * platform depended (see comment in unix/socket.h). Here they are
65 * platform depended (see comment in nxt_socket.h). Here they are
66 * normalized to the sockaddr_un with single zero byte sun_path[].
67 */
68
69 if (size <= offsetof(struct sockaddr_un, sun_path)) {
70 /*
71 * Small socket length means a short unspecified Unix domain
72 * socket address:
73 *

--- 511 unchanged lines hidden (view full) ---

585{
586#if (NXT_HAVE_UNIX_DOMAIN)
587 size_t length, socklen;
588 u_char *path;
589 nxt_sockaddr_t *sa;
590
591 /*
592 * Actual sockaddr_un length can be lesser or even larger than defined
66 * normalized to the sockaddr_un with single zero byte sun_path[].
67 */
68
69 if (size <= offsetof(struct sockaddr_un, sun_path)) {
70 /*
71 * Small socket length means a short unspecified Unix domain
72 * socket address:
73 *

--- 511 unchanged lines hidden (view full) ---

585{
586#if (NXT_HAVE_UNIX_DOMAIN)
587 size_t length, socklen;
588 u_char *path;
589 nxt_sockaddr_t *sa;
590
591 /*
592 * Actual sockaddr_un length can be lesser or even larger than defined
593 * struct sockaddr_un length (see comment in unix/nxt_socket.h). So
593 * struct sockaddr_un length (see comment in nxt_socket.h). So
594 * limit maximum Unix domain socket address length by defined sun_path[]
595 * length because some OSes accept addresses twice larger than defined
596 * struct sockaddr_un. Also reserve space for a trailing zero to avoid
597 * ambiguity, since many OSes accept Unix domain socket addresses
598 * without a trailing zero.
599 */
600 const size_t max_len = sizeof(struct sockaddr_un)
601 - offsetof(struct sockaddr_un, sun_path) - 1;

--- 203 unchanged lines hidden (view full) ---

805#if (NXT_HAVE_UNIX_DOMAIN)
806 size_t length, socklen;
807 u_char *path;
808 nxt_mp_t *mp;
809 nxt_sockaddr_t *sa;
810
811 /*
812 * Actual sockaddr_un length can be lesser or even larger than defined
594 * limit maximum Unix domain socket address length by defined sun_path[]
595 * length because some OSes accept addresses twice larger than defined
596 * struct sockaddr_un. Also reserve space for a trailing zero to avoid
597 * ambiguity, since many OSes accept Unix domain socket addresses
598 * without a trailing zero.
599 */
600 const size_t max_len = sizeof(struct sockaddr_un)
601 - offsetof(struct sockaddr_un, sun_path) - 1;

--- 203 unchanged lines hidden (view full) ---

805#if (NXT_HAVE_UNIX_DOMAIN)
806 size_t length, socklen;
807 u_char *path;
808 nxt_mp_t *mp;
809 nxt_sockaddr_t *sa;
810
811 /*
812 * Actual sockaddr_un length can be lesser or even larger than defined
813 * struct sockaddr_un length (see comment in unix/nxt_socket.h). So
813 * struct sockaddr_un length (see comment in nxt_socket.h). So
814 * limit maximum Unix domain socket address length by defined sun_path[]
815 * length because some OSes accept addresses twice larger than defined
816 * struct sockaddr_un. Also reserve space for a trailing zero to avoid
817 * ambiguity, since many OSes accept Unix domain socket addresses
818 * without a trailing zero.
819 */
820 const size_t max_len = sizeof(struct sockaddr_un)
821 - offsetof(struct sockaddr_un, sun_path) - 1;

--- 454 unchanged lines hidden ---
814 * limit maximum Unix domain socket address length by defined sun_path[]
815 * length because some OSes accept addresses twice larger than defined
816 * struct sockaddr_un. Also reserve space for a trailing zero to avoid
817 * ambiguity, since many OSes accept Unix domain socket addresses
818 * without a trailing zero.
819 */
820 const size_t max_len = sizeof(struct sockaddr_un)
821 - offsetof(struct sockaddr_un, sun_path) - 1;

--- 454 unchanged lines hidden ---