summaryrefslogtreecommitdiffstats
path: root/base/ios
diff options
context:
space:
mode:
authorpkl@chromium.org <pkl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-05 20:05:43 +0000
committerpkl@chromium.org <pkl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-05 20:05:43 +0000
commit0644db76591e63748953bb0ab33729ca6652f7b3 (patch)
treee51078ec46ce55ec22658004b4392479467b0641 /base/ios
parent0f7704c26e2e85b50b1bb26911923053b501dab7 (diff)
downloadchromium_src-0644db76591e63748953bb0ab33729ca6652f7b3.zip
chromium_src-0644db76591e63748953bb0ab33729ca6652f7b3.tar.gz
chromium_src-0644db76591e63748953bb0ab33729ca6652f7b3.tar.bz2
Fixed string conversions to avoid nil pointers.
base_unittests was failing on iOS 6 devices. This fixes it. Review URL: https://codereview.chromium.org/314123002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275227 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/ios')
-rw-r--r--base/ios/device_util.h2
-rw-r--r--base/ios/device_util.mm10
2 files changed, 6 insertions, 6 deletions
diff --git a/base/ios/device_util.h b/base/ios/device_util.h
index 4e69efc..1cd9a04 100644
--- a/base/ios/device_util.h
+++ b/base/ios/device_util.h
@@ -72,7 +72,7 @@ std::string GetRandomId();
// something that should be anonymous, you should probably pass NULL.
std::string GetDeviceIdentifier(const char* salt);
-// Returns a hashed version of |in_string| using |salt| (which must not
+// Returns a hashed version of |in_string| using |salt| (which must not be
// zero-length). Different salt values should result in differently hashed
// strings.
std::string GetSaltedString(const std::string& in_string,
diff --git a/base/ios/device_util.mm b/base/ios/device_util.mm
index 8449537..c3e9c20 100644
--- a/base/ios/device_util.mm
+++ b/base/ios/device_util.mm
@@ -46,7 +46,7 @@ NSString* GenerateClientId() {
if (!client_id || [client_id isEqualToString:kZeroUUID]) {
if (base::ios::IsRunningOnIOS6OrLater()) {
client_id = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
- if ([client_id isEqualToString:kZeroUUID])
+ if (!client_id || [client_id isEqualToString:kZeroUUID])
client_id = base::SysUTF8ToNSString(ios::device_util::GetRandomId());
} else {
client_id = base::SysUTF8ToNSString(ios::device_util::GetRandomId());
@@ -157,16 +157,16 @@ std::string GetDeviceIdentifier(const char* salt) {
[defaults synchronize];
}
- return GetSaltedString([client_id UTF8String], salt ? salt : kDefaultSalt);
+ return GetSaltedString(base::SysNSStringToUTF8(client_id),
+ salt ? salt : kDefaultSalt);
}
std::string GetSaltedString(const std::string& in_string,
const std::string& salt) {
DCHECK(in_string.length());
DCHECK(salt.length());
- NSData* hash_data =
- [[NSString stringWithFormat:@"%s%s", in_string.c_str(), salt.c_str()]
- dataUsingEncoding:NSUTF8StringEncoding];
+ NSData* hash_data = [base::SysUTF8ToNSString(in_string + salt)
+ dataUsingEncoding:NSUTF8StringEncoding];
unsigned char hash[CC_SHA256_DIGEST_LENGTH];
CC_SHA256([hash_data bytes], [hash_data length], hash);