From 23ecc2149133fa0cf369f53b5d7d28e78815bca3 Mon Sep 17 00:00:00 2001 From: Hidehiko Abe Date: Thu, 13 Jun 2019 22:27:41 +0900 Subject: [PATCH] libchrome: Update crypto. libchrome uses OpenSSH, instead of BoringSSH, although its support was dropped in Chrome already. To lengthen its lifetime, this patch adds minor fix. - Use base::data() instead of base::string_as_array(). The method was removed. cf) crrev.com/c/1056014. - Use base::PostTaskAndReply instead of base::WorkerPool. The class was removed. cf) crrev.com/c/650368 - tracked_object::Location is renamed to base::Location. cf) crbug.com/763556 - base::Location::Write was removed. Use ToString(). cf) crrev.com/c/707310 - base::MakeUnique was removed. Use std::make_unique. cf) crrev.com/c/944048 BUG=chromium:909719 TEST=Built locally. Change-Id: I2ba45db7592ea9addc2df230b977ffb950f0b342 --- crypto/nss_util.cc | 37 ++++++++++++++----------------------- crypto/openssl_util.cc | 6 ++---- crypto/openssl_util.h | 7 +++---- crypto/sha2.cc | 2 +- 4 files changed, 20 insertions(+), 32 deletions(-) diff --git a/crypto/nss_util.cc b/crypto/nss_util.cc index a7752d3..f9c6373 100644 --- a/crypto/nss_util.cc +++ b/crypto/nss_util.cc @@ -38,14 +38,13 @@ #include "base/files/file_util.h" #include "base/lazy_instance.h" #include "base/logging.h" -#include "base/memory/ptr_util.h" #include "base/message_loop/message_loop.h" #include "base/native_library.h" #include "base/stl_util.h" #include "base/strings/stringprintf.h" +#include "base/task_scheduler/post_task.h" #include "base/threading/thread_checker.h" #include "base/threading/thread_restrictions.h" -#include "base/threading/worker_pool.h" #include "build/build_config.h" #if !defined(OS_CHROMEOS) @@ -380,22 +379,16 @@ class NSSInitSingleton { std::unique_ptr tpm_args( new TPMModuleAndSlot(chaps_module_)); TPMModuleAndSlot* tpm_args_ptr = tpm_args.get(); - if (base::WorkerPool::PostTaskAndReply( - FROM_HERE, - base::Bind(&NSSInitSingleton::InitializeTPMTokenOnWorkerThread, - system_slot_id, - tpm_args_ptr), - base::Bind(&NSSInitSingleton::OnInitializedTPMTokenAndSystemSlot, - base::Unretained(this), // NSSInitSingleton is leaky - callback, - base::Passed(&tpm_args)), - true /* task_is_slow */ - )) { - initializing_tpm_token_ = true; - } else { - base::MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, base::Bind(callback, false)); - } + base::PostTaskAndReply( + FROM_HERE, + base::Bind(&NSSInitSingleton::InitializeTPMTokenOnWorkerThread, + system_slot_id, + tpm_args_ptr), + base::Bind(&NSSInitSingleton::OnInitializedTPMTokenAndSystemSlot, + base::Unretained(this), // NSSInitSingleton is leaky + callback, + base::Passed(&tpm_args))); + initializing_tpm_token_ = true; } static void InitializeTPMTokenOnWorkerThread(CK_SLOT_ID token_slot_id, @@ -508,7 +501,7 @@ class NSSInitSingleton { "%s %s", kUserNSSDatabaseName, username_hash.c_str()); ScopedPK11Slot public_slot(OpenPersistentNSSDBForPath(db_name, path)); chromeos_user_map_[username_hash] = - base::MakeUnique(std::move(public_slot)); + std::make_unique(std::move(public_slot)); return true; } @@ -543,7 +536,7 @@ class NSSInitSingleton { std::unique_ptr tpm_args( new TPMModuleAndSlot(chaps_module_)); TPMModuleAndSlot* tpm_args_ptr = tpm_args.get(); - base::WorkerPool::PostTaskAndReply( + base::PostTaskAndReply( FROM_HERE, base::Bind(&NSSInitSingleton::InitializeTPMTokenOnWorkerThread, slot_id, @@ -551,9 +544,7 @@ class NSSInitSingleton { base::Bind(&NSSInitSingleton::OnInitializedTPMForChromeOSUser, base::Unretained(this), // NSSInitSingleton is leaky username_hash, - base::Passed(&tpm_args)), - true /* task_is_slow */ - ); + base::Passed(&tpm_args))); } void OnInitializedTPMForChromeOSUser( diff --git a/crypto/openssl_util.cc b/crypto/openssl_util.cc index c1b7a90..b671eab 100644 --- a/crypto/openssl_util.cc +++ b/crypto/openssl_util.cc @@ -46,15 +46,13 @@ void EnsureOpenSSLInit() { #endif } -void ClearOpenSSLERRStack(const tracked_objects::Location& location) { +void ClearOpenSSLERRStack(const base::Location& location) { if (DCHECK_IS_ON() && VLOG_IS_ON(1)) { uint32_t error_num = ERR_peek_error(); if (error_num == 0) return; - std::string message; - location.Write(true, true, &message); - DVLOG(1) << "OpenSSL ERR_get_error stack from " << message; + DVLOG(1) << "OpenSSL ERR_get_error stack from " << location.ToString(); ERR_print_errors_cb(&OpenSSLErrorCallback, NULL); } else { ERR_clear_error(); diff --git a/crypto/openssl_util.h b/crypto/openssl_util.h index d608cde..c3d6cc9 100644 --- a/crypto/openssl_util.h +++ b/crypto/openssl_util.h @@ -63,8 +63,7 @@ CRYPTO_EXPORT void EnsureOpenSSLInit(); // Drains the OpenSSL ERR_get_error stack. On a debug build the error codes // are send to VLOG(1), on a release build they are disregarded. In most // cases you should pass FROM_HERE as the |location|. -CRYPTO_EXPORT void ClearOpenSSLERRStack( - const tracked_objects::Location& location); +CRYPTO_EXPORT void ClearOpenSSLERRStack(const base::Location& location); // Place an instance of this class on the call stack to automatically clear // the OpenSSL error stack on function exit. @@ -73,7 +72,7 @@ class OpenSSLErrStackTracer { // Pass FROM_HERE as |location|, to help track the source of OpenSSL error // messages. Note any diagnostic emitted will be tagged with the location of // the constructor call as it's not possible to trace a destructor's callsite. - explicit OpenSSLErrStackTracer(const tracked_objects::Location& location) + explicit OpenSSLErrStackTracer(const base::Location& location) : location_(location) { EnsureOpenSSLInit(); } @@ -82,7 +81,7 @@ class OpenSSLErrStackTracer { } private: - const tracked_objects::Location location_; + const base::Location location_; DISALLOW_IMPLICIT_CONSTRUCTORS(OpenSSLErrStackTracer); }; diff --git a/crypto/sha2.cc b/crypto/sha2.cc index 1b302b3..71566a9 100644 --- a/crypto/sha2.cc +++ b/crypto/sha2.cc @@ -21,7 +21,7 @@ void SHA256HashString(const base::StringPiece& str, void* output, size_t len) { std::string SHA256HashString(const base::StringPiece& str) { std::string output(kSHA256Length, 0); - SHA256HashString(str, base::string_as_array(&output), output.size()); + SHA256HashString(str, base::data(output), output.size()); return output; } -- 2.22.0.rc2.383.gf4fbbf30c2-goog