diff options
author | Adam Mitz <mitza@objectcomputing.com> | 2021-08-02 16:56:40 -0500 |
---|---|---|
committer | Adam Mitz <mitza@objectcomputing.com> | 2021-08-02 17:06:34 -0500 |
commit | 144e40f32a682e4729fb8b1ed773dfed94dd8e12 (patch) | |
tree | edc6c4c303b00e34764aaed907e571cab5ec5914 | |
parent | e67c1b5a792f96f8042088c42ba8a474fa29624b (diff) | |
download | ATCD-144e40f32a682e4729fb8b1ed773dfed94dd8e12.tar.gz |
make_multicast_ifaddr: prevent buffer overrun from net_if
fixes #1637
also removed a preprocessor conditional that was redundant
(cherry picked from commit 06e2a14d2d98b2a18b50615f4c048cffd49b3bfd)
-rw-r--r-- | ACE/ace/SOCK_Dgram.cpp | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/ACE/ace/SOCK_Dgram.cpp b/ACE/ace/SOCK_Dgram.cpp index c858926541e..a3578099074 100644 --- a/ACE/ace/SOCK_Dgram.cpp +++ b/ACE/ace/SOCK_Dgram.cpp @@ -673,7 +673,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; @@ -717,15 +716,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) |