summaryrefslogtreecommitdiff
path: root/ace/INET_Addr.cpp
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2004-03-10 16:44:24 +0000
committerSteve Huston <shuston@riverace.com>2004-03-10 16:44:24 +0000
commitac98b3872fc737300c207bf3bc50b05f5bb2088f (patch)
tree2a6e3542f2868de93aab229563c85237db22892c /ace/INET_Addr.cpp
parentd5ad6504cf53e4d891be8f14cdb191cd74e9912e (diff)
downloadATCD-ac98b3872fc737300c207bf3bc50b05f5bb2088f.tar.gz
ChangeLogTag:Wed Mar 10 11:39:41 2004 Steve Huston <shuston@riverace.com>
Diffstat (limited to 'ace/INET_Addr.cpp')
-rw-r--r--ace/INET_Addr.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/ace/INET_Addr.cpp b/ace/INET_Addr.cpp
index b95b67fffeb..62f6215d5e7 100644
--- a/ace/INET_Addr.cpp
+++ b/ace/INET_Addr.cpp
@@ -476,6 +476,9 @@ ACE_INET_Addr::set (const sockaddr_in *addr, int len)
if (addr->sin_family == AF_INET)
{
+ int maxlen = ACE_static_cast (int, sizeof (this->inet_addr_.in4_));
+ if (len > maxlen)
+ len = maxlen;
ACE_OS::memcpy (&this->inet_addr_.in4_, addr, len);
this->base_set (AF_INET, len);
return 0;
@@ -483,6 +486,9 @@ ACE_INET_Addr::set (const sockaddr_in *addr, int len)
#if defined (ACE_HAS_IPV6)
else if (addr->sin_family == AF_INET6)
{
+ int maxlen = ACE_static_cast (int, sizeof (this->inet_addr_.in6_));
+ if (len > maxlen)
+ len = maxlen;
ACE_OS::memcpy (&this->inet_addr_.in6_, addr, len);
this->base_set (AF_INET6, len);
return 0;