diff options
author | pastarmovj@chromium.org <pastarmovj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-14 13:31:15 +0000 |
---|---|---|
committer | pastarmovj@chromium.org <pastarmovj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-14 13:31:15 +0000 |
commit | db778a24822f8324b14d1704752f30bcca51e799 (patch) | |
tree | da134b4895dd6f55b7d4041c1247beb7650e9154 /chrome/app/chrome_main_mac.mm | |
parent | 50431b97f7a1e41be35cd03f717fa73fdac9d9a7 (diff) | |
download | chromium_src-db778a24822f8324b14d1704752f30bcca51e799.zip chromium_src-db778a24822f8324b14d1704752f30bcca51e799.tar.gz chromium_src-db778a24822f8324b14d1704752f30bcca51e799.tar.bz2 |
Fixed leaky code in the UserDataDir policy code for mac.
BUG=72741
TEST=Valgrind bots should be happy again.
Review URL: http://codereview.chromium.org/6475008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74814 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/app/chrome_main_mac.mm')
-rw-r--r-- | chrome/app/chrome_main_mac.mm | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/chrome/app/chrome_main_mac.mm b/chrome/app/chrome_main_mac.mm index 3aca6e4..10239a1 100644 --- a/chrome/app/chrome_main_mac.mm +++ b/chrome/app/chrome_main_mac.mm @@ -61,7 +61,7 @@ std::string TranslateMacVariablesInPolicy( } position = result.find(kMachineNamePolicyVarName); if (position != std::string::npos) { - NSString *machinename = [[NSHost currentHost] name]; + NSString* machinename = [[NSHost currentHost] name]; if (machinename) { result.replace(position, strlen(kMachineNamePolicyVarName), base::SysNSStringToUTF8(machinename)); @@ -79,17 +79,13 @@ std::string TranslateMacVariablesInPolicy( void CheckUserDataDirPolicy(FilePath* user_data_dir) { // Since the configuration management infrastructure is not initialized when // this code runs, read the policy preference directly. - CFStringRef key = base::SysUTF8ToCFStringRef(policy::key::kUserDataDir); - CFPropertyListRef value = - CFPreferencesCopyAppValue(key, kCFPreferencesCurrentApplication); - if (value && - CFPreferencesAppValueIsForced(key, kCFPreferencesCurrentApplication)) { - if (CFGetTypeID(value) == CFStringGetTypeID()) { - std::string string_value = - base::SysCFStringRefToUTF8((CFStringRef)value); - // Now replace any vars the user might have used. - string_value = TranslateMacVariablesInPolicy(string_value); - *user_data_dir = FilePath(string_value); - } + NSString* key = base::SysUTF8ToNSString(policy::key::kUserDataDir); + NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; + NSString* value = [defaults stringForKey:key]; + if (value && [defaults objectIsForcedForKey:key]) { + std::string string_value = base::SysNSStringToUTF8(value); + // Now replace any vars the user might have used. + string_value = TranslateMacVariablesInPolicy(string_value); + *user_data_dir = FilePath(string_value); } } |