diff --git a/ext/sockets/multicast.c b/ext/sockets/multicast.c index 8227256adac5e..b157120a33c7a 100644 --- a/ext/sockets/multicast.c +++ b/ext/sockets/multicast.c @@ -846,7 +846,7 @@ zend_result php_add4_to_if_index(struct in_addr *addr, php_socket *php_sock, uns } { - char addr_str[17] = {0}; + char addr_str[INET_ADDRSTRLEN] = {0}; inet_ntop(AF_INET, addr, addr_str, sizeof(addr_str)); php_error_docref(NULL, E_WARNING, "The interface with IP address %s was not found", addr_str); diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c index 2d8b55c6b97ba..734344690defe 100644 --- a/ext/sockets/sockets.c +++ b/ext/sockets/sockets.c @@ -1026,7 +1026,7 @@ PHP_FUNCTION(socket_getsockname) #endif case AF_INET: sin = (struct sockaddr_in *) sa; - addr_string = inet_ntop(AF_INET, &sin->sin_addr, addrbuf, sizeof(addrbuf)); + addr_string = inet_ntop(AF_INET, &sin->sin_addr, addrbuf, INET_ADDRSTRLEN); ZEND_TRY_ASSIGN_REF_STRING(addr, addr_string); if (objint != NULL) { @@ -1116,7 +1116,7 @@ PHP_FUNCTION(socket_getpeername) #endif case AF_INET: sin = (struct sockaddr_in *) sa; - addr_string = inet_ntop(AF_INET, &sin->sin_addr, addrbuf, sizeof(addrbuf)); + addr_string = inet_ntop(AF_INET, &sin->sin_addr, addrbuf, INET_ADDRSTRLEN); ZEND_TRY_ASSIGN_REF_STRING(arg2, addr_string); if (arg3 != NULL) { @@ -1574,7 +1574,7 @@ PHP_FUNCTION(socket_recvfrom) ZSTR_LEN(recv_buf) = retval; ZSTR_VAL(recv_buf)[ZSTR_LEN(recv_buf)] = '\0'; - address = inet_ntop(AF_INET, &sin.sin_addr, addrbuf, sizeof(addrbuf)); + address = inet_ntop(AF_INET, &sin.sin_addr, addrbuf, INET_ADDRSTRLEN); ZEND_TRY_ASSIGN_REF_NEW_STR(arg2, recv_buf); ZEND_TRY_ASSIGN_REF_STRING(arg5, address ? address : "0.0.0.0"); diff --git a/main/network.c b/main/network.c index 06b637b878912..d74b647e7f4ca 100644 --- a/main/network.c +++ b/main/network.c @@ -657,13 +657,13 @@ PHPAPI void php_network_populate_name_from_sockaddr( } if (textaddr) { - char abuf[256]; + char abuf[INET6_ADDRSTRLEN]; const char *buf = NULL; switch (sa->sa_family) { case AF_INET: /* generally not thread safe, but it *is* thread safe under win32 */ - buf = inet_ntop(AF_INET, &((struct sockaddr_in*)sa)->sin_addr, (char *)&abuf, sizeof(abuf)); + buf = inet_ntop(AF_INET, &((struct sockaddr_in*)sa)->sin_addr, abuf, INET_ADDRSTRLEN); if (buf) { *textaddr = strpprintf(0, "%s:%d", buf, ntohs(((struct sockaddr_in*)sa)->sin_port)); @@ -673,7 +673,7 @@ PHPAPI void php_network_populate_name_from_sockaddr( #ifdef HAVE_IPV6 case AF_INET6: - buf = (char*)inet_ntop(sa->sa_family, &((struct sockaddr_in6*)sa)->sin6_addr, (char *)&abuf, sizeof(abuf)); + buf = inet_ntop(sa->sa_family, &((struct sockaddr_in6*)sa)->sin6_addr, abuf, sizeof(abuf)); if (buf) { *textaddr = strpprintf(0, "[%s]:%d", buf, ntohs(((struct sockaddr_in6*)sa)->sin6_port));