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-20 14:54:11 +0000 |
commit | 92bb62539606a47f0370f0558a267fd9bc7e4e0c (patch) | |
tree | 68089f61b602eec3fb3ab80463baa185297df161 | |
parent | e749ff3b639a693f217de338f6283a0f555f7bfe (diff) | |
download | qtwebengine-chromium-92bb62539606a47f0370f0558a267fd9bc7e4e0c.tar.gz |
[Backport] Security bug 1296334
Manual 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: Michal Klocek <michal.klocek@qt.io>
-rw-r--r-- | chromium/components/safe_browsing/core/realtime/url_lookup_service_base.cc | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/chromium/components/safe_browsing/core/realtime/url_lookup_service_base.cc b/chromium/components/safe_browsing/core/realtime/url_lookup_service_base.cc index e035129c97a..226511eb3f8 100644 --- a/chromium/components/safe_browsing/core/realtime/url_lookup_service_base.cc +++ b/chromium/components/safe_browsing/core/realtime/url_lookup_service_base.cc @@ -281,9 +281,8 @@ void RealTimeUrlLookupServiceBase::MayBeCacheRealTimeUrlVerdict( if (response.threat_info_size() > 0) { base::PostTask(FROM_HERE, CreateTaskTraits(ThreadID::UI), base::BindOnce(&VerdictCacheManager::CacheRealTimeUrlVerdict, - base::Unretained(cache_manager_), url, - response, base::Time::Now(), - /* store_old_cache */ false)); + cache_manager_->GetWeakPtr(), url, response, + base::Time::Now(), /* store_old_cache */ false)); } } |