Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Unified Diff: native_client_sdk/src/libraries/nacl_io/socket/socket_node.cc

Issue 310903002: nacl_io: only copy up to the size of the sockaddr_in*, not the given len. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: stuff Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/src/libraries/nacl_io/socket/socket_node.cc
diff --git a/native_client_sdk/src/libraries/nacl_io/socket/socket_node.cc b/native_client_sdk/src/libraries/nacl_io/socket/socket_node.cc
index 831345557bd91d5f3ee3e35d3f3715c6f1a3bfc6..0fef5f269cca74811150fd4cb8b1e71ae4ff0d9a 100644
--- a/native_client_sdk/src/libraries/nacl_io/socket/socket_node.cc
+++ b/native_client_sdk/src/libraries/nacl_io/socket/socket_node.cc
@@ -157,10 +157,11 @@ socklen_t SocketNode::ResourceToSockAddr(PP_Resource addr,
addr4.sin_family = AF_INET;
addr4.sin_port = ipv4.port;
memcpy(&addr4.sin_addr, ipv4.addr, sizeof(ipv4.addr));
- memcpy(out_addr, &addr4, len);
+ memcpy(out_addr, &addr4,
+ std::min(len, static_cast<socklen_t>(sizeof(addr4))));
// Returns required size not copied size like getpeername/getsockname.
- return sizeof(sockaddr_in);
+ return sizeof(addr4);
}
if (PP_TRUE == NetInterface()->DescribeAsIPv6Address(addr, &ipv6)) {
@@ -168,10 +169,11 @@ socklen_t SocketNode::ResourceToSockAddr(PP_Resource addr,
addr6.sin6_family = AF_INET6;
addr6.sin6_port = ipv6.port;
memcpy(&addr6.sin6_addr, ipv6.addr, sizeof(ipv6.addr));
- memcpy(out_addr, &addr6, len);
+ memcpy(out_addr, &addr6,
+ std::min(len, static_cast<socklen_t>(sizeof(addr6))));
// Returns required size not copied size like getpeername/getsockname.
- return sizeof(sockaddr_in6);
+ return sizeof(addr6);
}
return 0;

Powered by Google App Engine
This is Rietveld 408576698