From: Iain Sandoe Date: Sun, 13 Mar 2022 16:29:45 +0000 (+0000) Subject: libcody: Do not use a dummy port number in getaddrinfo(). X-Git-Tag: upstream/12.2.0~993 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=99fcd602a82e28e1d6a843e5cbe011b570dc81fa;p=platform%2Fupstream%2Fgcc.git libcody: Do not use a dummy port number in getaddrinfo(). the getaddrinfo() requires either a non-null name for the server or a port service / number. In the code that opens a connection we have been calling this with a dummy port number of "0". Unfortunately this triggers a bug in some BSD versions and OSes importing that code. In this part of the code we do not really need a port number, since it is not reasonable to open a connection to an unspecified host. Setting hints info field to 0, and the servname parm to nullptr works around the BSD bug in this case. Signed-off-by: Iain Sandoe libcody/ChangeLog: * netclient.cc (OpenInet6): Do not provide a dummy port number in the getaddrinfo() call. --- diff --git a/libcody/netclient.cc b/libcody/netclient.cc index 7f81dd9..558808b 100644 --- a/libcody/netclient.cc +++ b/libcody/netclient.cc @@ -93,7 +93,7 @@ int OpenInet6 (char const **e, char const *name, int port) } addrinfo hints; - hints.ai_flags = AI_NUMERICSERV; + hints.ai_flags = 0; hints.ai_family = AF_INET6; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = 0; @@ -102,9 +102,7 @@ int OpenInet6 (char const **e, char const *name, int port) hints.ai_canonname = nullptr; hints.ai_next = nullptr; - /* getaddrinfo requires a port number, but is quite happy to accept - invalid ones. So don't rely on it. */ - if (int err = getaddrinfo (name, "0", &hints, &addrs)) + if (int err = getaddrinfo (name, nullptr, &hints, &addrs)) { errstr = gai_strerror (err); // What's the best errno to set?