summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-09-29 10:41:10 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2021-10-02 09:20:50 +0200
commitcd7a7db3557c120d82abdf50532b73087e344fa3 (patch)
treeb8e67f7b9fd01e817c5aa43712ab5af1f1a8dcff /src
parentf831b13ed1949a9ce527ae01e02f19c969963ba3 (diff)
Fix theoretical use after move
We can't recover from a failure to post Change-Id: I6a5addf7346e36112e16878e3173048cf85fb7b5 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/core/net/client_cert_override.cpp13
1 files changed, 5 insertions, 8 deletions
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