diff options
author | henrike@webrtc.org <henrike@webrtc.org> | 2014-11-06 17:23:09 +0000 |
---|---|---|
committer | henrike@webrtc.org <henrike@webrtc.org> | 2014-11-06 17:23:09 +0000 |
commit | a031c17214da02adca9211ad161447e6cfbe8821 (patch) | |
tree | 7ab33f23050f973858801dbfae914202a6341153 | |
parent | eb46bb84a37bc9384ec3941a97966bec87d2476c (diff) | |
download | webrtc-a031c17214da02adca9211ad161447e6cfbe8821.tar.gz |
Fix WebRTC Win64 + BoringSSL build.
There were many size_t to int conversions. RAND_poll and RAND_seed no longer do
anything in BoringSSL, so fix that one by removing it. Use a checked_cast for
the remaining ones.
BUG=chromium:429039
R=henrike@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/28909004
git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@7655 4adac7df-926f-26a2-2b94-8c16560cd09d
-rw-r--r-- | base/helpers.cc | 25 | ||||
-rw-r--r-- | base/openssladapter.cc | 10 | ||||
-rw-r--r-- | base/opensslstreamadapter.cc | 11 | ||||
-rw-r--r-- | base/safe_conversions_impl.h | 2 |
4 files changed, 17 insertions, 31 deletions
diff --git a/base/helpers.cc b/base/helpers.cc index 8b14cdfd..84d1c93b 100644 --- a/base/helpers.cc +++ b/base/helpers.cc @@ -47,36 +47,17 @@ class RandomGenerator { }; #if defined(SSL_USE_OPENSSL) -// The OpenSSL RNG. Need to make sure it doesn't run out of entropy. +// The OpenSSL RNG. class SecureRandomGenerator : public RandomGenerator { public: - SecureRandomGenerator() : inited_(false) { - } - ~SecureRandomGenerator() { - } + SecureRandomGenerator() {} + ~SecureRandomGenerator() {} virtual bool Init(const void* seed, size_t len) { - // By default, seed from the system state. - if (!inited_) { - if (RAND_poll() <= 0) { - return false; - } - inited_ = true; - } - // Allow app data to be mixed in, if provided. - if (seed) { - RAND_seed(seed, len); - } return true; } virtual bool Generate(void* buf, size_t len) { - if (!inited_ && !Init(NULL, 0)) { - return false; - } return (RAND_bytes(reinterpret_cast<unsigned char*>(buf), len) > 0); } - - private: - bool inited_; }; #elif defined(SSL_USE_NSS_RNG) diff --git a/base/openssladapter.cc b/base/openssladapter.cc index 68a1fcb1..feb01d36 100644 --- a/base/openssladapter.cc +++ b/base/openssladapter.cc @@ -34,6 +34,7 @@ #include "webrtc/base/common.h" #include "webrtc/base/logging.h" #include "webrtc/base/openssl.h" +#include "webrtc/base/safe_conversions.h" #include "webrtc/base/sslroots.h" #include "webrtc/base/stringutils.h" @@ -141,7 +142,7 @@ static int socket_write(BIO* b, const char* in, int inl) { } static int socket_puts(BIO* b, const char* str) { - return socket_write(b, str, strlen(str)); + return socket_write(b, str, rtc::checked_cast<int>(strlen(str))); } static long socket_ctrl(BIO* b, int cmd, long num, void* ptr) { @@ -448,7 +449,7 @@ OpenSSLAdapter::Send(const void* pv, size_t cb) { ssl_write_needs_read_ = false; - int code = SSL_write(ssl_, pv, cb); + int code = SSL_write(ssl_, pv, checked_cast<int>(cb)); switch (SSL_get_error(ssl_, code)) { case SSL_ERROR_NONE: //LOG(LS_INFO) << " -- success"; @@ -503,7 +504,7 @@ OpenSSLAdapter::Recv(void* pv, size_t cb) { ssl_read_needs_write_ = false; - int code = SSL_read(ssl_, pv, cb); + int code = SSL_read(ssl_, pv, checked_cast<int>(cb)); switch (SSL_get_error(ssl_, code)) { case SSL_ERROR_NONE: //LOG(LS_INFO) << " -- success"; @@ -843,7 +844,8 @@ bool OpenSSLAdapter::ConfigureTrustedRootCertificates(SSL_CTX* ctx) { for (int i = 0; i < ARRAY_SIZE(kSSLCertCertificateList); i++) { const unsigned char* cert_buffer = kSSLCertCertificateList[i]; size_t cert_buffer_len = kSSLCertCertificateSizeList[i]; - X509* cert = d2i_X509(NULL, &cert_buffer, cert_buffer_len); + X509* cert = d2i_X509(NULL, &cert_buffer, + checked_cast<long>(cert_buffer_len)); if (cert) { int return_value = X509_STORE_add_cert(SSL_CTX_get_cert_store(ctx), cert); if (return_value == 0) { diff --git a/base/opensslstreamadapter.cc b/base/opensslstreamadapter.cc index 133eb72b..d790e4e8 100644 --- a/base/opensslstreamadapter.cc +++ b/base/opensslstreamadapter.cc @@ -26,6 +26,7 @@ #include "webrtc/base/common.h" #include "webrtc/base/logging.h" +#include "webrtc/base/safe_conversions.h" #include "webrtc/base/stream.h" #include "webrtc/base/openssl.h" #include "webrtc/base/openssladapter.h" @@ -114,7 +115,7 @@ static int stream_read(BIO* b, char* out, int outl) { int error; StreamResult result = stream->Read(out, outl, &read, &error); if (result == SR_SUCCESS) { - return read; + return checked_cast<int>(read); } else if (result == SR_EOS) { b->num = 1; } else if (result == SR_BLOCK) { @@ -132,7 +133,7 @@ static int stream_write(BIO* b, const char* in, int inl) { int error; StreamResult result = stream->Write(in, inl, &written, &error); if (result == SR_SUCCESS) { - return written; + return checked_cast<int>(written); } else if (result == SR_BLOCK) { BIO_set_retry_write(b); } @@ -140,7 +141,7 @@ static int stream_write(BIO* b, const char* in, int inl) { } static int stream_puts(BIO* b, const char* str) { - return stream_write(b, str, strlen(str)); + return stream_write(b, str, checked_cast<int>(strlen(str))); } static long stream_ctrl(BIO* b, int cmd, long num, void* ptr) { @@ -364,7 +365,7 @@ StreamResult OpenSSLStreamAdapter::Write(const void* data, size_t data_len, ssl_write_needs_read_ = false; - int code = SSL_write(ssl_, data, data_len); + int code = SSL_write(ssl_, data, checked_cast<int>(data_len)); int ssl_error = SSL_get_error(ssl_, code); switch (ssl_error) { case SSL_ERROR_NONE: @@ -425,7 +426,7 @@ StreamResult OpenSSLStreamAdapter::Read(void* data, size_t data_len, ssl_read_needs_write_ = false; - int code = SSL_read(ssl_, data, data_len); + int code = SSL_read(ssl_, data, checked_cast<int>(data_len)); int ssl_error = SSL_get_error(ssl_, code); switch (ssl_error) { case SSL_ERROR_NONE: diff --git a/base/safe_conversions_impl.h b/base/safe_conversions_impl.h index 2950f970..77b053a8 100644 --- a/base/safe_conversions_impl.h +++ b/base/safe_conversions_impl.h @@ -15,6 +15,8 @@ #include <limits> +#include "webrtc/base/compile_assert.h" + namespace rtc { namespace internal { |