Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(378)

Unified Diff: chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc

Issue 2762293002: Avoid segfault for missing StateKeysBroker (Closed)
Patch Set: Add reference to crbug Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc
diff --git a/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc b/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc
index 1a6f976f51e85e99b5fd1a6aa46e96c542faad80..c21807d27f6701cc968487125f0000f2beec4ffb 100644
--- a/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc
+++ b/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc
@@ -217,26 +217,31 @@ AutoEnrollmentController::RegisterProgressCallback(
void AutoEnrollmentController::OnOwnershipStatusCheckDone(
DeviceSettingsService::OwnershipStatus status) {
- switch (status) {
- case DeviceSettingsService::OWNERSHIP_NONE: {
+ policy::ServerBackedStateKeysBroker* state_keys_broker =
g_browser_process->platform_part()
->browser_policy_connector_chromeos()
- ->GetStateKeysBroker()
- ->RequestStateKeys(
- base::Bind(&AutoEnrollmentController::StartClient,
- client_start_weak_factory_.GetWeakPtr()));
- break;
- }
- case DeviceSettingsService::OWNERSHIP_TAKEN: {
+ ->GetStateKeysBroker();
+ switch (status) {
+ case DeviceSettingsService::OWNERSHIP_NONE:
+ // TODO(tnagel): Prevent missing state keys broker in the first place.
+ // https://crbug.com/703658
+ if (!state_keys_broker) {
+ LOG(ERROR) << "State keys broker missing.";
+ UpdateState(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT);
+ return;
+ }
+ state_keys_broker->RequestStateKeys(
+ base::Bind(&AutoEnrollmentController::StartClient,
+ client_start_weak_factory_.GetWeakPtr()));
+ return;
+ case DeviceSettingsService::OWNERSHIP_TAKEN:
VLOG(1) << "Device already owned, skipping auto-enrollment check.";
UpdateState(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT);
- break;
- }
- case DeviceSettingsService::OWNERSHIP_UNKNOWN: {
+ return;
+ case DeviceSettingsService::OWNERSHIP_UNKNOWN:
LOG(ERROR) << "Ownership unknown, skipping auto-enrollment check.";
UpdateState(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT);
- break;
- }
+ return;
}
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698