summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2013-09-27 22:14:17 +0000
committerSteve Huston <shuston@riverace.com>2013-09-27 22:14:17 +0000
commit4e9aeae07a291cd6aaaa1a11f362d32953a67997 (patch)
tree194284e9fc82b52e9f134cc1afb2cb60e51094c2
parent9d29781b87c948a46cfa9be0f12ce978cb06846b (diff)
downloadATCD-4e9aeae07a291cd6aaaa1a11f362d32953a67997.tar.gz
ChangeLogTag:Fri Sep 27 21:33:58 UTC 2013 Steve Huston <shuston@riverace.com>
-rw-r--r--ACE/ChangeLog13
-rw-r--r--ACE/ace/ACE.cpp15
-rw-r--r--ACE/ace/FILE_IO.cpp11
-rw-r--r--ACE/ace/INET_Addr.cpp4
-rw-r--r--ACE/ace/Ping_Socket.cpp18
-rw-r--r--ACE/ace/Process.inl3
6 files changed, 43 insertions, 21 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog
index f80fced2d1f..924ee0f7d22 100644
--- a/ACE/ChangeLog
+++ b/ACE/ChangeLog
@@ -1,3 +1,16 @@
+Fri Sep 27 21:33:58 UTC 2013 Steve Huston <shuston@riverace.com>
+
+ * ace/ACE.cpp: Same fix as Thu Sep 26 20:22:53 made to recvv_n_i(),
+ sendv_n_i(), readv_n(), writev_n().
+
+ * ace/FILE_IO.cpp (recvv): Resolve 64-bit compile warnings and ensure
+ that no more is read than can be accurately reported.
+
+ * ace/INET_Addr.cpp (set):
+ * ace/Ping_Socket.cpp:
+ * ace/Process.inl (command_line_buff):
+ Resolve 64-bit compile warning on Windows.
+
Thu Sep 26 20:22:53 UTC 2013 Steve Huston <shuston@riverace.com>
* ace/ACE.cpp (recvv_n_i): Resolve 64-bit compile warning on Windows.
diff --git a/ACE/ace/ACE.cpp b/ACE/ace/ACE.cpp
index 6328905e882..8418fdf5b92 100644
--- a/ACE/ace/ACE.cpp
+++ b/ACE/ace/ACE.cpp
@@ -1080,7 +1080,8 @@ ACE::recvv_n_i (ACE_HANDLE handle,
{
char *base = reinterpret_cast<char *> (iov[s].iov_base);
iov[s].iov_base = base + n;
- iov[s].iov_len = iov[s].iov_len - n;
+ // This blind cast is safe because n < iov_len, after above loop.
+ iov[s].iov_len = iov[s].iov_len - static_cast<u_long> (n);
}
}
@@ -1792,7 +1793,8 @@ ACE::sendv_n_i (ACE_HANDLE handle,
{
char *base = reinterpret_cast<char *> (iov[s].iov_base);
iov[s].iov_base = base + n;
- iov[s].iov_len = iov[s].iov_len - n;
+ // This blind cast is safe because n < iov_len, after above loop.
+ iov[s].iov_len = iov[s].iov_len - static_cast<u_long> (n);
}
}
@@ -1864,7 +1866,8 @@ ACE::sendv_n_i (ACE_HANDLE handle,
{
char *base = reinterpret_cast<char *> (iov[s].iov_base);
iov[s].iov_base = base + n;
- iov[s].iov_len = iov[s].iov_len - n;
+ // This blind cast is safe because n < iov_len, after above loop.
+ iov[s].iov_len = iov[s].iov_len - static_cast<u_long> (n);
}
}
@@ -2106,7 +2109,8 @@ ACE::readv_n (ACE_HANDLE handle,
{
char *base = reinterpret_cast<char *> (iov[s].iov_base);
iov[s].iov_base = base + n;
- iov[s].iov_len = iov[s].iov_len - n;
+ // This blind cast is safe because n < iov_len, after above loop.
+ iov[s].iov_len = iov[s].iov_len - static_cast<u_long> (n);
}
}
@@ -2148,7 +2152,8 @@ ACE::writev_n (ACE_HANDLE handle,
{
char *base = reinterpret_cast<char *> (iov[s].iov_base);
iov[s].iov_base = base + n;
- iov[s].iov_len = iov[s].iov_len - n;
+ // This blind cast is safe because n < iov_len, after above loop.
+ iov[s].iov_len = iov[s].iov_len - static_cast<u_long> (n);
}
}
diff --git a/ACE/ace/FILE_IO.cpp b/ACE/ace/FILE_IO.cpp
index 0013fb7fe0f..56afee6c968 100644
--- a/ACE/ace/FILE_IO.cpp
+++ b/ACE/ace/FILE_IO.cpp
@@ -124,16 +124,17 @@ ACE_FILE_IO::recvv (iovec *io_vec)
ACE_TRACE ("ACE_FILE_IO::recvv");
io_vec->iov_base = 0;
- size_t const length =
- static_cast <size_t> (ACE_OS::filesize (this->get_handle ()));
+ ACE_OFF_T const length = ACE_OS::filesize (this->get_handle ());
if (length > 0)
{
+ // Restrict to max size we can record in iov_len.
+ size_t len = ACE_Utils::truncate_cast<u_long> (length);
ACE_NEW_RETURN (io_vec->iov_base,
- char[length],
+ char[len],
-1);
- io_vec->iov_len = this->recv_n (io_vec->iov_base,
- length);
+ io_vec->iov_len = static_cast<u_long> (this->recv_n (io_vec->iov_base,
+ len));
return io_vec->iov_len;
}
else
diff --git a/ACE/ace/INET_Addr.cpp b/ACE/ace/INET_Addr.cpp
index d5ca0cec2e4..bb42bdfefbc 100644
--- a/ACE/ace/INET_Addr.cpp
+++ b/ACE/ace/INET_Addr.cpp
@@ -17,6 +17,7 @@
#include "ace/OS_NS_netdb.h"
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_sys_socket.h"
+#include "ace/Truncate.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -379,7 +380,8 @@ ACE_INET_Addr::set (u_short port_number,
if ((error = ::getaddrinfo (host_name, 0, &hints, &res)) == 0)
{
this->set_type (res->ai_family);
- this->set_addr (res->ai_addr, res->ai_addrlen);
+ this->set_addr (res->ai_addr,
+ ACE_Utils::truncate_cast<int>(res->ai_addrlen));
this->set_port_number (port_number, encode);
::freeaddrinfo (res);
return 0;
diff --git a/ACE/ace/Ping_Socket.cpp b/ACE/ace/Ping_Socket.cpp
index b760b4abacf..6282527ab55 100644
--- a/ACE/ace/Ping_Socket.cpp
+++ b/ACE/ace/Ping_Socket.cpp
@@ -154,10 +154,10 @@ ACE_Ping_Socket::receive_echo_reply (ACE_Time_Value const * timeout)
do
{
- int rval_recv = inherited::recv (icmp_recv_buff_,
- sizeof icmp_recv_buff_,
- 0,
- wait_time);
+ ssize_t rval_recv = inherited::recv (icmp_recv_buff_,
+ sizeof icmp_recv_buff_,
+ 0,
+ wait_time);
if (rval_recv < 0)
{
if (errno == EINTR)
@@ -203,7 +203,7 @@ int
ACE_Ping_Socket::process_incoming_dgram (char * ptr, ssize_t len)
{
unsigned char hlen1;
- int icmplen;
+ ssize_t icmplen;
struct ip * ip;
struct icmp * icmp;
@@ -224,7 +224,7 @@ ACE_Ping_Socket::process_incoming_dgram (char * ptr, ssize_t len)
ACELIB_DEBUG
((LM_DEBUG,
ACE_TEXT ("(%P|%t) ACE_Ping_Socket::process_incoming_dgram")
- ACE_TEXT (" - ICMP length is %d < 8.\n"),
+ ACE_TEXT (" - ICMP length is %b < 8.\n"),
icmplen));
ACELIB_ERROR_RETURN
((LM_ERROR,
@@ -257,7 +257,7 @@ ACE_Ping_Socket::process_incoming_dgram (char * ptr, ssize_t len)
((LM_ERROR,
ACE_TEXT ("(%P|%t) ACE_Ping_Socket::")
ACE_TEXT ("process_incoming_dgram - ICMP length ")
- ACE_TEXT ("is %d < 16."),
+ ACE_TEXT ("is %b < 16."),
icmplen),
-1);
}
@@ -266,7 +266,7 @@ ACE_Ping_Socket::process_incoming_dgram (char * ptr, ssize_t len)
((LM_DEBUG,
ACE_TEXT ("(%P|%t) ACE::Ping_Socket::process_incoming_dgram - ")
ACE_TEXT ("received ")
- ACE_TEXT ("ICMP datagram with length of %d bytes (not counting ")
+ ACE_TEXT ("ICMP datagram with length of %b bytes (not counting ")
ACE_TEXT ("IP-header): seq=%u, ttl=%d.\n"),
icmplen, icmp->icmp_seq, ip->ip_ttl));
@@ -335,7 +335,7 @@ ACE_Ping_Socket::send_echo_check (ACE_INET_Addr &remote_addr,
_icmp->icmp_cksum = 0;
_icmp->icmp_cksum = inherited::calculate_checksum ((u_short *) _icmp,
length_icmp);
- int rval_send = -1;
+ ssize_t rval_send = -1;
if ((rval_send = send ((void const *) icmp_send_buff_,
length_icmp,
diff --git a/ACE/ace/Process.inl b/ACE/ace/Process.inl
index e77db92f5bc..c04ef8b3f87 100644
--- a/ACE/ace/Process.inl
+++ b/ACE/ace/Process.inl
@@ -7,6 +7,7 @@
#include "ace/OS_NS_signal.h"
#include "ace/OS_NS_pwd.h"
#include "ace/OS_NS_string.h"
+#include "ace/Truncate.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -330,7 +331,7 @@ ACE_INLINE ACE_TCHAR *
ACE_Process_Options::command_line_buf (int *max_lenp)
{
if (max_lenp != 0)
- *max_lenp = this->command_line_buf_len_;
+ *max_lenp = ACE_Utils::truncate_cast<int>(this->command_line_buf_len_);
return this->command_line_buf_;
}