diff options
author | Adam Mitz <mitza@objectcomputing.com> | 2021-08-02 16:56:40 -0500 |
---|---|---|
committer | Adam Mitz <mitza@objectcomputing.com> | 2021-08-02 16:56:40 -0500 |
commit | 06e2a14d2d98b2a18b50615f4c048cffd49b3bfd (patch) | |
tree | 34c72ff900d56cafc047dbab0c2b6a8f02ec4d73 | |
parent | 4e7704ac7ade6d97cc7d30bd7e2f00f38fac898c (diff) | |
download | ATCD-06e2a14d2d98b2a18b50615f4c048cffd49b3bfd.tar.gz |
make_multicast_ifaddr: prevent buffer overrun from net_if
fixes #1637
also removed a preprocessor conditional that was redundant
-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 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) |