Commit 723362d8 authored by Wez's avatar Wez Committed by Commit Bot

Fix StorageHandler::Disable() to not dereference-after-move()ing.

Previously the order of std::move() versus dereference to fetch the
|indexed_db_observer_|'s TaskRunner was unspecified, potentially leading
to a null dereference.

Bug: 794842
Change-Id: If08358fcf017bfebe0d615c9230f8af7a02177c9
Reviewed-on: https://chromium-review.googlesource.com/827603Reviewed-by: default avatarPavel Feldman <pfeldman@chromium.org>
Commit-Queue: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524565}
parent 354f7f85
...@@ -263,8 +263,10 @@ Response StorageHandler::Disable() { ...@@ -263,8 +263,10 @@ Response StorageHandler::Disable() {
cache_storage_observer_.release()); cache_storage_observer_.release());
} }
if (indexed_db_observer_) { if (indexed_db_observer_) {
indexed_db_observer_->TaskRunner()->DeleteSoon( scoped_refptr<base::SequencedTaskRunner> observer_task_runner =
FROM_HERE, std::move(indexed_db_observer_)); indexed_db_observer_->TaskRunner();
observer_task_runner->DeleteSoon(FROM_HERE,
std::move(indexed_db_observer_));
} }
return Response::OK(); return Response::OK();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment