OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #import <Cocoa/Cocoa.h> | 5 #import <Cocoa/Cocoa.h> |
6 #include <dirent.h> | 6 #include <dirent.h> |
7 | 7 |
8 extern "C" { | 8 extern "C" { |
9 #include <sandbox.h> | 9 #include <sandbox.h> |
10 } | 10 } |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 typedef scoped_ptr_malloc<FilePath, ScopedDirectoryDelete> ScopedDirectory; | 143 typedef scoped_ptr_malloc<FilePath, ScopedDirectoryDelete> ScopedDirectory; |
144 | 144 |
145 TEST_F(MacDirAccessSandboxTest, SandboxAccess) { | 145 TEST_F(MacDirAccessSandboxTest, SandboxAccess) { |
146 using file_util::CreateDirectory; | 146 using file_util::CreateDirectory; |
147 | 147 |
148 FilePath tmp_dir; | 148 FilePath tmp_dir; |
149 ASSERT_TRUE(file_util::CreateNewTempDirectory("", &tmp_dir)); | 149 ASSERT_TRUE(file_util::CreateNewTempDirectory("", &tmp_dir)); |
150 // This step is important on OS X since the sandbox only understands "real" | 150 // This step is important on OS X since the sandbox only understands "real" |
151 // paths and the paths CreateNewTempDirectory() returns are empirically in | 151 // paths and the paths CreateNewTempDirectory() returns are empirically in |
152 // /var which is a symlink to /private/var . | 152 // /var which is a symlink to /private/var . |
153 Sandbox::GetCanonicalSandboxPath(&tmp_dir); | 153 tmp_dir = Sandbox::GetCanonicalSandboxPath(tmp_dir); |
154 ScopedDirectory cleanup(&tmp_dir); | 154 ScopedDirectory cleanup(&tmp_dir); |
155 | 155 |
156 const char* sandbox_dir_cases[] = { | 156 const char* sandbox_dir_cases[] = { |
157 "simple_dir_name", | 157 "simple_dir_name", |
158 "^hello++ $", // Regex. | 158 "^hello++ $", // Regex. |
159 "\\^.$|()[]*+?{}", // All regex characters. | 159 "\\^.$|()[]*+?{}", // All regex characters. |
160 }; | 160 }; |
161 | 161 |
162 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(sandbox_dir_cases); ++i) { | 162 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(sandbox_dir_cases); ++i) { |
163 const char* sandbox_dir_name = sandbox_dir_cases[i]; | 163 const char* sandbox_dir_name = sandbox_dir_cases[i]; |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 PLOG(ERROR) << "Sandbox breach: was able to write (" | 299 PLOG(ERROR) << "Sandbox breach: was able to write (" |
300 << denied_file2.value() | 300 << denied_file2.value() |
301 << ")"; | 301 << ")"; |
302 return -1; | 302 return -1; |
303 } | 303 } |
304 | 304 |
305 return 0; | 305 return 0; |
306 } | 306 } |
307 | 307 |
308 } // namespace sandbox | 308 } // namespace sandbox |
OLD | NEW |