summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcmasone@chromium.org <cmasone@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-07 17:42:03 +0000
committercmasone@chromium.org <cmasone@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-07 17:42:03 +0000
commit1ae412959a5ff5cfe4d2538f8580df8645631eec (patch)
treefa83d6ab2f8e1a3b7828a5881caa3aa058937ce7
parent6a89ef2c78c7b2ae2b56b3c50cafb493cedfd8d7 (diff)
downloadchromium_src-1ae412959a5ff5cfe4d2538f8580df8645631eec.zip
chromium_src-1ae412959a5ff5cfe4d2538f8580df8645631eec.tar.gz
chromium_src-1ae412959a5ff5cfe4d2538f8580df8645631eec.tar.bz2
[Chrome OS] Request{Store|Retrieve}Policy require explicit lengths
match recent libcros changes around Store/RetrievePolicy BUG=None TEST=unit tests R=stevenjb@chromium.org Review URL: http://codereview.chromium.org/6815001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80807 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chromeos/cros/login_library.cc4
-rw-r--r--chrome/browser/chromeos/login/signed_settings.cc16
-rw-r--r--chrome/browser/chromeos/login/signed_settings_unittest.cc12
-rw-r--r--tools/cros.DEPS/DEPS2
4 files changed, 21 insertions, 13 deletions
diff --git a/chrome/browser/chromeos/cros/login_library.cc b/chrome/browser/chromeos/cros/login_library.cc
index fe6b505..4d5d4e4 100644
--- a/chrome/browser/chromeos/cros/login_library.cc
+++ b/chrome/browser/chromeos/cros/login_library.cc
@@ -65,7 +65,7 @@ class LoginLibraryImpl : public LoginLibrary {
StorePolicyCallback callback,
void* delegate) {
DCHECK(callback) << "must provide a callback to StorePolicy()";
- chromeos::StorePolicy(policy.c_str(), callback, delegate);
+ chromeos::StorePolicy(policy.c_str(), policy.length(), callback, delegate);
}
bool StorePropertyAsync(const std::string& name,
@@ -281,7 +281,7 @@ class LoginLibraryStubImpl : public LoginLibrary {
return true;
}
void RequestRetrievePolicy(RetrievePolicyCallback callback, void* delegate) {
- callback(delegate, "");
+ callback(delegate, "", 0);
}
void RequestRetrieveProperty(const std::string& name,
RetrievePropertyCallback callback,
diff --git a/chrome/browser/chromeos/login/signed_settings.cc b/chrome/browser/chromeos/login/signed_settings.cc
index 495234c..3526b13 100644
--- a/chrome/browser/chromeos/login/signed_settings.cc
+++ b/chrome/browser/chromeos/login/signed_settings.cc
@@ -145,12 +145,14 @@ class RetrievePolicyOp : public SignedSettings {
const std::vector<uint8>& payload);
private:
- static void OnStringComplete(void* delegate, const char* policy);
+ static void OnStringComplete(void* delegate,
+ const char* policy,
+ const unsigned int len);
em::PolicyFetchResponse policy_;
SignedSettings::Delegate<const em::PolicyFetchResponse&>* d_;
- void ProcessPolicy(const char* policy);
+ void ProcessPolicy(const char* out, const unsigned int len);
};
// static
@@ -513,13 +515,15 @@ void RetrievePolicyOp::OnKeyOpComplete(
}
// static
-void RetrievePolicyOp::OnStringComplete(void* delegate, const char* out) {
+void RetrievePolicyOp::OnStringComplete(void* delegate,
+ const char* out,
+ const unsigned int len) {
RetrievePolicyOp* op = static_cast<RetrievePolicyOp*>(delegate);
- op->ProcessPolicy(out);
+ op->ProcessPolicy(out, len);
}
-void RetrievePolicyOp::ProcessPolicy(const char* out) {
- if (!out || !policy_.ParseFromString(out)) {
+void RetrievePolicyOp::ProcessPolicy(const char* out, const unsigned int len) {
+ if (!out || !policy_.ParseFromString(std::string(out, len))) {
d_->OnSettingsOpCompleted(NOT_FOUND, policy_);
return;
}
diff --git a/chrome/browser/chromeos/login/signed_settings_unittest.cc b/chrome/browser/chromeos/login/signed_settings_unittest.cc
index 90e2f30..e536871 100644
--- a/chrome/browser/chromeos/login/signed_settings_unittest.cc
+++ b/chrome/browser/chromeos/login/signed_settings_unittest.cc
@@ -496,7 +496,8 @@ TEST_F(SignedSettingsTest, RetrievePolicy) {
MockLoginLibrary* lib = MockLoginLib();
EXPECT_CALL(*lib, RequestRetrievePolicy(_, s.get()))
.WillOnce(InvokeArgument<0>(static_cast<void*>(s.get()),
- signed_serialized.c_str()))
+ signed_serialized.c_str(),
+ signed_serialized.length()))
.RetiresOnSaturation();
mock_service(s.get(), &m_);
@@ -521,7 +522,8 @@ TEST_F(SignedSettingsTest, RetrieveNoPolicy) {
MockLoginLibrary* lib = MockLoginLib();
EXPECT_CALL(*lib, RequestRetrievePolicy(_, s.get()))
.WillOnce(InvokeArgument<0>(static_cast<void*>(s.get()),
- static_cast<const char*>(NULL)))
+ static_cast<const char*>(NULL),
+ 0))
.RetiresOnSaturation();
s->Execute();
@@ -541,7 +543,8 @@ TEST_F(SignedSettingsTest, RetrieveUnsignedPolicy) {
MockLoginLibrary* lib = MockLoginLib();
EXPECT_CALL(*lib, RequestRetrievePolicy(_, s.get()))
.WillOnce(InvokeArgument<0>(static_cast<void*>(s.get()),
- serialized.c_str()))
+ serialized.c_str(),
+ serialized.length()))
.RetiresOnSaturation();
s->Execute();
@@ -561,7 +564,8 @@ TEST_F(SignedSettingsTest, RetrieveMalsignedPolicy) {
MockLoginLibrary* lib = MockLoginLib();
EXPECT_CALL(*lib, RequestRetrievePolicy(_, s.get()))
.WillOnce(InvokeArgument<0>(static_cast<void*>(s.get()),
- signed_serialized.c_str()))
+ signed_serialized.c_str(),
+ signed_serialized.length()))
.RetiresOnSaturation();
mock_service(s.get(), &m_);
diff --git a/tools/cros.DEPS/DEPS b/tools/cros.DEPS/DEPS
index 9043f55..c94dddd 100644
--- a/tools/cros.DEPS/DEPS
+++ b/tools/cros.DEPS/DEPS
@@ -4,5 +4,5 @@ vars = {
deps = {
"src/third_party/cros":
- Var("chromium_git") + "/cros.git@890f2f00",
+ Var("chromium_git") + "/cros.git@4f6c04ef",
}