summaryrefslogtreecommitdiffstats
path: root/chrome/browser/policy/device_management_service.cc
diff options
context:
space:
mode:
authormnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-11 09:35:39 +0000
committermnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-11 09:35:39 +0000
commit6b4ba072d6f0a99f6cd412308ddcbf6d74bd354a (patch)
treec2f62a7aa1b27a019e46cc5cc15bfd66fcd4fb40 /chrome/browser/policy/device_management_service.cc
parent82acbaaacf50d6ac2db1e810839939a278e96833 (diff)
downloadchromium_src-6b4ba072d6f0a99f6cd412308ddcbf6d74bd354a.zip
chromium_src-6b4ba072d6f0a99f6cd412308ddcbf6d74bd354a.tar.gz
chromium_src-6b4ba072d6f0a99f6cd412308ddcbf6d74bd354a.tar.bz2
Fix destruction of device management backend jobs
If the backend was destroyed during the status callback, this would result in a double delete. Unregister the job before running the callback in order to resolve this. BUG=none TEST=unit test Review URL: http://codereview.chromium.org/6825006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81082 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/policy/device_management_service.cc')
-rw-r--r--chrome/browser/policy/device_management_service.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/chrome/browser/policy/device_management_service.cc b/chrome/browser/policy/device_management_service.cc
index 27fe57a..be8c151 100644
--- a/chrome/browser/policy/device_management_service.cc
+++ b/chrome/browser/policy/device_management_service.cc
@@ -188,8 +188,8 @@ void DeviceManagementService::OnURLFetchComplete(
JobFetcherMap::iterator entry(pending_jobs_.find(source));
if (entry != pending_jobs_.end()) {
DeviceManagementJob* job = entry->second;
- job->HandleResponse(status, response_code, cookies, data);
pending_jobs_.erase(entry);
+ job->HandleResponse(status, response_code, cookies, data);
} else {
NOTREACHED() << "Callback from foreign URL fetcher";
}