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 17:06:34 -0500
commit144e40f32a682e4729fb8b1ed773dfed94dd8e12 (patch)
treeedc6c4c303b00e34764aaed907e571cab5ec5914
parente67c1b5a792f96f8042088c42ba8a474fa29624b (diff)
downloadATCD-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.cpp6
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)