diff options
author | Xinghui Lu <xinghuilu@chromium.org> | 2022-02-24 21:23:26 +0000 |
---|---|---|
committer | Michael BrĂ¼ning <michael.bruning@qt.io> | 2022-05-09 12:15:49 +0000 |
commit | 76f669ff6a92194d115f39e8ab77fd3c123f3031 (patch) | |
tree | a92e6ae498903d432354f191ed6ed50a8f7d29c6 | |
parent | 5a6f5c79b1470d4b84ece8b3dab89690b5de7734 (diff) | |
download | qtwebengine-chromium-76f669ff6a92194d115f39e8ab77fd3c123f3031.tar.gz |
[Backport] Security bug 1296334
Cherry-pick of patch originally reviewed on
https://chromium-review.googlesource.com/c/chromium/src/+/3483595:
Replace RawPtr with WeakPtr when posting task to cache_manager
When RealTimeUrlLookupServiceBase post a task to cache a verdict, it
uses base::Unretained. This is not safe because when the task is run,
the cache manager may no longer be valid. Replace base::Unretained with
WeakPtr() to avoid this issue.
Bug: 1296334
Change-Id: If4e70951b949d349ab35aa52410f044595ababb6
Reviewed-by: Daniel Rubery <drubery@chromium.org>
Commit-Queue: Xinghui Lu <xinghuilu@chromium.org>
Cr-Commit-Position: refs/heads/main@{#974832}
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r-- | chromium/components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/chromium/components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc b/chromium/components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc index fde08f0d04f..e385db2250b 100644 --- a/chromium/components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc +++ b/chromium/components/safe_browsing/core/browser/realtime/url_lookup_service_base.cc @@ -319,8 +319,8 @@ void RealTimeUrlLookupServiceBase::MayBeCacheRealTimeUrlVerdict( if (response.threat_info_size() > 0) { base::SequencedTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::BindOnce(&VerdictCacheManager::CacheRealTimeUrlVerdict, - base::Unretained(cache_manager_), url, - response, base::Time::Now())); + cache_manager_->GetWeakPtr(), url, response, + base::Time::Now())); } } |