summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Mitz <mitza@objectcomputing.com>2021-08-02 16:56:40 -0500
committerAdam Mitz <mitza@objectcomputing.com>2021-08-02 16:56:40 -0500
commit06e2a14d2d98b2a18b50615f4c048cffd49b3bfd (patch)
tree34c72ff900d56cafc047dbab0c2b6a8f02ec4d73
parent4e7704ac7ade6d97cc7d30bd7e2f00f38fac898c (diff)
downloadATCD-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.cpp6
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)