diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-09-29 10:41:10 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-10-02 09:20:50 +0200 |
commit | cd7a7db3557c120d82abdf50532b73087e344fa3 (patch) | |
tree | b8e67f7b9fd01e817c5aa43712ab5af1f1a8dcff /src | |
parent | f831b13ed1949a9ce527ae01e02f19c969963ba3 (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.cpp | 13 |
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 |