OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chromeos/settings/timezone_settings.h" | 5 #include "chromeos/settings/timezone_settings.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <string> | 10 #include <string> |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 const ssize_t len = readlink(kTimezoneSymlink, buf, | 216 const ssize_t len = readlink(kTimezoneSymlink, buf, |
217 sizeof(buf)-1); | 217 sizeof(buf)-1); |
218 if (len == -1) { | 218 if (len == -1) { |
219 LOG(ERROR) << "GetTimezoneID: Cannot read timezone symlink " | 219 LOG(ERROR) << "GetTimezoneID: Cannot read timezone symlink " |
220 << kTimezoneSymlink; | 220 << kTimezoneSymlink; |
221 return std::string(); | 221 return std::string(); |
222 } | 222 } |
223 | 223 |
224 std::string timezone(buf, len); | 224 std::string timezone(buf, len); |
225 // Remove kTimezoneFilesDir from the beginning. | 225 // Remove kTimezoneFilesDir from the beginning. |
226 if (timezone.find(kTimezoneFilesDir) != 0) { | 226 if (!base::StartsWith(timezone, kTimezoneFilesDir, |
| 227 base::CompareCase::SENSITIVE)) { |
227 LOG(ERROR) << "GetTimezoneID: Timezone symlink is wrong " | 228 LOG(ERROR) << "GetTimezoneID: Timezone symlink is wrong " |
228 << timezone; | 229 << timezone; |
229 return std::string(); | 230 return std::string(); |
230 } | 231 } |
231 | 232 |
232 return timezone.substr(strlen(kTimezoneFilesDir)); | 233 return timezone.substr(strlen(kTimezoneFilesDir)); |
233 } | 234 } |
234 | 235 |
235 void SetTimezoneIDFromString(const std::string& id) { | 236 void SetTimezoneIDFromString(const std::string& id) { |
236 // Change the kTimezoneSymlink symlink to the path for this timezone. | 237 // Change the kTimezoneSymlink symlink to the path for this timezone. |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
474 | 475 |
475 // static | 476 // static |
476 base::string16 TimezoneSettings::GetTimezoneID(const icu::TimeZone& timezone) { | 477 base::string16 TimezoneSettings::GetTimezoneID(const icu::TimeZone& timezone) { |
477 icu::UnicodeString id; | 478 icu::UnicodeString id; |
478 timezone.getID(id); | 479 timezone.getID(id); |
479 return base::string16(id.getBuffer(), id.length()); | 480 return base::string16(id.getBuffer(), id.length()); |
480 } | 481 } |
481 | 482 |
482 } // namespace system | 483 } // namespace system |
483 } // namespace chromeos | 484 } // namespace chromeos |
OLD | NEW |