From: Jaeyun Jung Date: Fri, 21 Apr 2023 08:12:58 +0000 (+0900) Subject: [Socket] use getaddrinfo to fill socketaddr X-Git-Tag: accepted/tizen/unified/20230424.185346^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=99784517f29405774132ca27b97f297fdad3c9e5;p=platform%2Fupstream%2Fnnstreamer-edge.git [Socket] use getaddrinfo to fill socketaddr Fix svace issue. The function gethostbyname is unsafe function, use getaddrinfo instead. Signed-off-by: Jaeyun Jung --- diff --git a/src/libnnstreamer-edge/nnstreamer-edge-internal.c b/src/libnnstreamer-edge/nnstreamer-edge-internal.c index 93abb21..d389325 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-internal.c @@ -178,12 +178,25 @@ _fill_socket_addr (struct sockaddr_in *saddr, const char *host, const int port) saddr->sin_port = htons (port); if ((saddr->sin_addr.s_addr = inet_addr (host)) == INADDR_NONE) { - struct hostent *ent = gethostbyname (host); + int ret; + char *port_str = NULL; + struct addrinfo hints; + struct addrinfo *addrs = NULL; - if (!ent) + memset (&hints, 0, sizeof (hints)); + hints.ai_family = AF_INET; + hints.ai_socktype = SOCK_STREAM; + + if (port > 0) + port_str = nns_edge_strdup_printf ("%d", port); + ret = getaddrinfo (host, port_str, &hints, &addrs); + SAFE_FREE (port_str); + + if (ret != 0 || addrs == NULL) return false; - memmove (&saddr->sin_addr, ent->h_addr, ent->h_length); + memcpy (saddr, addrs->ai_addr, addrs->ai_addrlen); + freeaddrinfo (addrs); } return true;