[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
getaddrinfo() may legally return ai_addr = NULL (ITS#1416)
Full_Name: Peter Marschall
Version: 20.0.18
OS: Linux 2.4.x
URL: ftp://ftp.openldap.org/incoming/peter.marschall-011029.patch
Submission from: (NULL) (194.145.150.12)
The man page for getaddrinfo() in the GNU C library states:
If node is NULL, the network address in each socket struc-
ture is initialized according to the AI_PASSIVE flag,
which is set in the ai_flags member of the hints parame-
ter. The network address in each socket structure will be
left unspecified if AI_PASSIVE flag is set. This is used
by server applications, which intend to accept client con-
nections on any network address. The network address will
be set to the loopback interface address if the AI_PASSIVE
flag is not set. This is used by client applications,
which intend to connect to a server running on the same
network host.
So, at least for glibc, the ai_addr field of the addrinfo structure
may be legally NULL when the AI_PASSIVE flag is set and host is NULL.
Unfortunately slap_get_listener_addresses() in servers/slapd/daemon.c
issues a warnung when ai_addr is NULL no matter what which value host has.
The patch in ftp://ftp.openldap.org/incoming/
should fix this problem.
Since my knowledge in network programming is somewhat limited, this
patch may need some polishing.