summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinghui Lu <xinghuilu@chromium.org>2022-02-24 21:23:26 +0000
committerMichael BrĂ¼ning <michael.bruning@qt.io>2022-05-09 12:15:49 +0000
commit76f669ff6a92194d115f39e8ab77fd3c123f3031 (patch)
treea92e6ae498903d432354f191ed6ed50a8f7d29c6
parent5a6f5c79b1470d4b84ece8b3dab89690b5de7734 (diff)
downloadqtwebengine-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.cc4
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()));
}
}