From 06e2a14d2d98b2a18b50615f4c048cffd49b3bfd Mon Sep 17 00:00:00 2001 From: Adam Mitz Date: Mon, 2 Aug 2021 16:56:40 -0500 Subject: make_multicast_ifaddr: prevent buffer overrun from net_if fixes #1637 also removed a preprocessor conditional that was redundant --- ACE/ace/SOCK_Dgram.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/ACE/ace/SOCK_Dgram.cpp b/ACE/ace/SOCK_Dgram.cpp index 5180362bea6..a946a56994d 100644 --- a/ACE/ace/SOCK_Dgram.cpp +++ b/ACE/ace/SOCK_Dgram.cpp @@ -672,7 +672,6 @@ ACE_SOCK_Dgram::make_multicast_ifaddr (ip_mreq *ret_mreq, ACE_INET_Addr interface_addr; if (interface_addr.set (mcast_addr.get_port_number (), net_if) == -1) { -#if defined (ACE_WIN32) IP_ADAPTER_ADDRESSES tmp_addrs; // Initial call to determine actual memory size needed ULONG bufLen = 0; @@ -716,15 +715,12 @@ ACE_SOCK_Dgram::make_multicast_ifaddr (ip_mreq *ret_mreq, errno = EINVAL; return -1; } -#else - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_WIN32 */ } lmreq.imr_interface.s_addr = ACE_HTONL (interface_addr.get_ip_address ()); #else ifreq if_address; - ACE_OS::strcpy (if_address.ifr_name, ACE_TEXT_ALWAYS_CHAR (net_if)); + ACE_OS::strncpy (if_address.ifr_name, ACE_TEXT_ALWAYS_CHAR (net_if), sizeof if_address.ifr_name); if (ACE_OS::ioctl (this->get_handle (), SIOCGIFADDR, &if_address) == -1) -- cgit v1.2.1