From cd7a7db3557c120d82abdf50532b73087e344fa3 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Wed, 29 Sep 2021 10:41:10 +0200 Subject: Fix theoretical use after move We can't recover from a failure to post Change-Id: I6a5addf7346e36112e16878e3173048cf85fb7b5 Reviewed-by: Kirill Burtsev --- src/core/net/client_cert_override.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/core/net/client_cert_override.cpp b/src/core/net/client_cert_override.cpp index 9c2ff31d7..4f7ae665f 100644 --- a/src/core/net/client_cert_override.cpp +++ b/src/core/net/client_cert_override.cpp @@ -141,22 +141,19 @@ void ClientCertOverrideStore::GetClientCerts(const net::SSLCertRequestInfo &cert { #if QT_CONFIG(ssl) // Access the user-provided data from the UI thread, but return on whatever thread this is. - if (base::PostTaskAndReplyWithResult( + bool ok = base::PostTaskAndReplyWithResult( FROM_HERE, { content::BrowserThread::UI }, base::BindOnce(&ClientCertOverrideStore::GetClientCertsOnUIThread, base::Unretained(this), std::cref(cert_request_info)), base::BindOnce(&ClientCertOverrideStore::GetClientCertsReturn, - base::Unretained(this), std::cref(cert_request_info), std::move(callback))) - ) { - return; - } -#endif // QT_CONFIG(ssl) - - // Continue with native cert store if we failed to post task + base::Unretained(this), std::cref(cert_request_info), std::move(callback))); + DCHECK(ok); // callback is already moved and we can't really recover here. +#else if (m_nativeStore) m_nativeStore->GetClientCerts(cert_request_info, std::move(callback)); else std::move(callback).Run(net::ClientCertIdentityList()); +#endif // QT_CONFIG(ssl) } // static -- cgit v1.2.3