| 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 #include "base/file_util.h" | 5 #include "base/file_util.h" |
| 6 | 6 |
| 7 #include <dirent.h> | 7 #include <dirent.h> |
| 8 #include <errno.h> | 8 #include <errno.h> |
| 9 #include <fcntl.h> | 9 #include <fcntl.h> |
| 10 #include <fnmatch.h> | 10 #include <fnmatch.h> |
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 242 } | 242 } |
| 243 | 243 |
| 244 while (success && !directories.empty()) { | 244 while (success && !directories.empty()) { |
| 245 FilePath dir = FilePath(directories.top()); | 245 FilePath dir = FilePath(directories.top()); |
| 246 directories.pop(); | 246 directories.pop(); |
| 247 success = (rmdir(dir.value().c_str()) == 0); | 247 success = (rmdir(dir.value().c_str()) == 0); |
| 248 } | 248 } |
| 249 return success; | 249 return success; |
| 250 } | 250 } |
| 251 | 251 |
| 252 bool Move(const FilePath& from_path, const FilePath& to_path) { | 252 bool MoveUnsafe(const FilePath& from_path, const FilePath& to_path) { |
| 253 base::ThreadRestrictions::AssertIOAllowed(); | 253 base::ThreadRestrictions::AssertIOAllowed(); |
| 254 // Windows compatibility: if to_path exists, from_path and to_path | 254 // Windows compatibility: if to_path exists, from_path and to_path |
| 255 // must be the same type, either both files, or both directories. | 255 // must be the same type, either both files, or both directories. |
| 256 stat_wrapper_t to_file_info; | 256 stat_wrapper_t to_file_info; |
| 257 if (CallStat(to_path.value().c_str(), &to_file_info) == 0) { | 257 if (CallStat(to_path.value().c_str(), &to_file_info) == 0) { |
| 258 stat_wrapper_t from_file_info; | 258 stat_wrapper_t from_file_info; |
| 259 if (CallStat(from_path.value().c_str(), &from_file_info) == 0) { | 259 if (CallStat(from_path.value().c_str(), &from_file_info) == 0) { |
| 260 if (S_ISDIR(to_file_info.st_mode) != S_ISDIR(from_file_info.st_mode)) | 260 if (S_ISDIR(to_file_info.st_mode) != S_ISDIR(from_file_info.st_mode)) |
| 261 return false; | 261 return false; |
| 262 } else { | 262 } else { |
| (...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1005 #endif | 1005 #endif |
| 1006 | 1006 |
| 1007 FilePath rv; | 1007 FilePath rv; |
| 1008 if (file_util::GetTempDir(&rv)) | 1008 if (file_util::GetTempDir(&rv)) |
| 1009 return rv; | 1009 return rv; |
| 1010 | 1010 |
| 1011 // Last resort. | 1011 // Last resort. |
| 1012 return FilePath("/tmp"); | 1012 return FilePath("/tmp"); |
| 1013 } | 1013 } |
| 1014 | 1014 |
| 1015 bool CopyFile(const FilePath& from_path, const FilePath& to_path) { | 1015 bool CopyFileUnsafe(const FilePath& from_path, const FilePath& to_path) { |
| 1016 base::ThreadRestrictions::AssertIOAllowed(); | 1016 base::ThreadRestrictions::AssertIOAllowed(); |
| 1017 int infile = HANDLE_EINTR(open(from_path.value().c_str(), O_RDONLY)); | 1017 int infile = HANDLE_EINTR(open(from_path.value().c_str(), O_RDONLY)); |
| 1018 if (infile < 0) | 1018 if (infile < 0) |
| 1019 return false; | 1019 return false; |
| 1020 | 1020 |
| 1021 int outfile = HANDLE_EINTR(creat(to_path.value().c_str(), 0666)); | 1021 int outfile = HANDLE_EINTR(creat(to_path.value().c_str(), 0666)); |
| 1022 if (outfile < 0) { | 1022 if (outfile < 0) { |
| 1023 ignore_result(HANDLE_EINTR(close(infile))); | 1023 ignore_result(HANDLE_EINTR(close(infile))); |
| 1024 return false; | 1024 return false; |
| 1025 } | 1025 } |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1124 | 1124 |
| 1125 allowed_group_ids.insert(group_record->gr_gid); | 1125 allowed_group_ids.insert(group_record->gr_gid); |
| 1126 } | 1126 } |
| 1127 | 1127 |
| 1128 return VerifyPathControlledByUser( | 1128 return VerifyPathControlledByUser( |
| 1129 kFileSystemRoot, path, kRootUid, allowed_group_ids); | 1129 kFileSystemRoot, path, kRootUid, allowed_group_ids); |
| 1130 } | 1130 } |
| 1131 #endif // defined(OS_MACOSX) && !defined(OS_IOS) | 1131 #endif // defined(OS_MACOSX) && !defined(OS_IOS) |
| 1132 | 1132 |
| 1133 } // namespace file_util | 1133 } // namespace file_util |
| OLD | NEW |