Commit 47228171 authored by Lutz Justen's avatar Lutz Justen Committed by Commit Bot

Fix FakeKerberosClient::GetAccountData

It returned a copy of the data, not the original data, which goes wrong
when the data is written to as in
FakeKerberosClient::AcquireKerberosTgt().

BUG=chromium:952237
TEST=None

Change-Id: I0f39314d0c44e31e6586963f3d60ae439b0e062a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1590095
Commit-Queue: Lutz Justen <ljusten@chromium.org>
Reviewed-by: default avatarDan Erat <derat@chromium.org>
Reviewed-by: default avatarKush Sinha <sinhak@chromium.org>
Cr-Commit-Position: refs/heads/master@{#657620}
parent 9b5ac360
......@@ -111,7 +111,7 @@ void FakeKerberosClient::SetConfig(const kerberos::SetConfigRequest& request,
return;
}
base::Optional<AccountData> data = GetAccountData(request.principal_name());
AccountData* data = GetAccountData(request.principal_name());
if (!data) {
PostResponse(std::move(callback), kerberos::ERROR_UNKNOWN_PRINCIPAL_NAME);
return;
......@@ -130,7 +130,7 @@ void FakeKerberosClient::AcquireKerberosTgt(
return;
}
base::Optional<AccountData> data = GetAccountData(request.principal_name());
AccountData* data = GetAccountData(request.principal_name());
if (!data) {
PostResponse(std::move(callback), kerberos::ERROR_UNKNOWN_PRINCIPAL_NAME);
return;
......@@ -149,7 +149,7 @@ void FakeKerberosClient::GetKerberosFiles(
return;
}
base::Optional<AccountData> data = GetAccountData(request.principal_name());
AccountData* data = GetAccountData(request.principal_name());
if (!data) {
PostResponse(std::move(callback), kerberos::ERROR_UNKNOWN_PRINCIPAL_NAME);
return;
......@@ -170,12 +170,12 @@ void FakeKerberosClient::ConnectToKerberosFileChangedSignal(
kerberos_files_changed_callback_ = callback;
}
base::Optional<FakeKerberosClient::AccountData>
FakeKerberosClient::GetAccountData(const std::string& principal_name) {
FakeKerberosClient::AccountData* FakeKerberosClient::GetAccountData(
const std::string& principal_name) {
auto it = accounts_.find(principal_name);
if (it == accounts_.end())
return base::nullopt;
return it->second;
return nullptr;
return &it->second;
}
KerberosClient::TestInterface* FakeKerberosClient::GetTestInterface() {
......
......@@ -9,7 +9,6 @@
#include <string>
#include <unordered_map>
#include "base/optional.h"
#include "chromeos/dbus/kerberos/kerberos_client.h"
#include "chromeos/dbus/kerberos/kerberos_service.pb.h"
#include "dbus/object_proxy.h"
......@@ -53,9 +52,9 @@ class COMPONENT_EXPORT(CHROMEOS_DBUS) FakeKerberosClient
bool has_tgt = false;
};
// Returns the AccountData for |principal_name| if available or nullopt
// Returns the AccountData for |principal_name| if available or nullptr
// otherwise.
base::Optional<AccountData> GetAccountData(const std::string& principal_name);
AccountData* GetAccountData(const std::string& principal_name);
// Maps principal name (user@REALM.COM) to account data.
using AccountsMap = std::unordered_map<std::string, AccountData>;
......
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