| Index: content/browser/renderer_host/pepper_message_filter.cc
|
| diff --git a/content/browser/renderer_host/pepper_message_filter.cc b/content/browser/renderer_host/pepper_message_filter.cc
|
| index a04162fbbb611c8f7ba75cb17d28bd221ea447a0..3a37d80d3404743b24974fa4c5a3d08357761db6 100644
|
| --- a/content/browser/renderer_host/pepper_message_filter.cc
|
| +++ b/content/browser/renderer_host/pepper_message_filter.cc
|
| @@ -43,6 +43,7 @@
|
| #include "ppapi/c/private/ppb_flash_net_connector.h"
|
| #include "ppapi/proxy/ppapi_messages.h"
|
| #include "ppapi/proxy/ppb_flash_tcp_socket_proxy.h"
|
| +#include "ppapi/shared_impl/private/flash_net_address_impl.h"
|
| #include "webkit/plugins/ppapi/ppb_flash_net_connector_impl.h"
|
|
|
| #if defined(ENABLE_FLAPPER_HACKS)
|
| @@ -54,25 +55,7 @@ using content::BrowserThread;
|
|
|
| namespace {
|
|
|
| -bool ValidateNetAddress(const PP_Flash_NetAddress& addr) {
|
| - if (addr.size < sizeof(reinterpret_cast<sockaddr*>(0)->sa_family))
|
| - return false;
|
| -
|
| - // TODO(viettrungluu): more careful validation?
|
| - // Just do a size check for AF_INET.
|
| - if (reinterpret_cast<const sockaddr*>(addr.data)->sa_family == AF_INET &&
|
| - addr.size >= sizeof(sockaddr_in))
|
| - return true;
|
| -
|
| - // Ditto for AF_INET6.
|
| - if (reinterpret_cast<const sockaddr*>(addr.data)->sa_family == AF_INET6 &&
|
| - addr.size >= sizeof(sockaddr_in6))
|
| - return true;
|
| -
|
| - // Reject everything else.
|
| - return false;
|
| -}
|
| -
|
| +// TODO(viettrungluu): Move (some of) these to flash_net_address_impl.h.
|
| bool SockaddrToNetAddress(const sockaddr* sa,
|
| socklen_t sa_length,
|
| PP_Flash_NetAddress* net_addr) {
|
| @@ -105,7 +88,8 @@ bool AddressListToNetAddress(const net::AddressList& address_list,
|
|
|
| bool NetAddressToIPEndPoint(const PP_Flash_NetAddress& net_addr,
|
| net::IPEndPoint* ip_end_point) {
|
| - if (!ip_end_point || !ValidateNetAddress(net_addr))
|
| + if (!ip_end_point ||
|
| + !ppapi::FlashNetAddressImpl::ValidateNetAddress(net_addr))
|
| return false;
|
|
|
| if (!ip_end_point->FromSockAddr(
|
| @@ -1105,7 +1089,7 @@ void PepperMessageFilter::OnConnectTcpAddress(int routing_id,
|
|
|
| // Validate the address and then continue (doing |connect()|) on a worker
|
| // thread.
|
| - if (!ValidateNetAddress(addr) ||
|
| + if (!ppapi::FlashNetAddressImpl::ValidateNetAddress(addr) ||
|
| !base::WorkerPool::PostTask(FROM_HERE,
|
| NewRunnableMethod(
|
| this,
|
|
|