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 1067 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1078 } while (bytes_written_per_read < bytes_read); | 1078 } while (bytes_written_per_read < bytes_read); |
1079 } | 1079 } |
1080 | 1080 |
1081 if (HANDLE_EINTR(close(infile)) < 0) | 1081 if (HANDLE_EINTR(close(infile)) < 0) |
1082 result = false; | 1082 result = false; |
1083 if (HANDLE_EINTR(close(outfile)) < 0) | 1083 if (HANDLE_EINTR(close(outfile)) < 0) |
1084 result = false; | 1084 result = false; |
1085 | 1085 |
1086 return result; | 1086 return result; |
1087 } | 1087 } |
1088 #endif // defined(OS_MACOSX) | 1088 #endif // !defined(OS_MACOSX) |
1089 | 1089 |
1090 bool VerifyPathControlledByUser(const FilePath& base, | 1090 bool VerifyPathControlledByUser(const FilePath& base, |
1091 const FilePath& path, | 1091 const FilePath& path, |
1092 uid_t owner_uid, | 1092 uid_t owner_uid, |
1093 const std::set<gid_t>& group_gids) { | 1093 const std::set<gid_t>& group_gids) { |
1094 if (base != path && !base.IsParent(path)) { | 1094 if (base != path && !base.IsParent(path)) { |
1095 DLOG(ERROR) << "|base| must be a subdirectory of |path|. base = \"" | 1095 DLOG(ERROR) << "|base| must be a subdirectory of |path|. base = \"" |
1096 << base.value() << "\", path = \"" << path.value() << "\""; | 1096 << base.value() << "\", path = \"" << path.value() << "\""; |
1097 return false; | 1097 return false; |
1098 } | 1098 } |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1151 | 1151 |
1152 allowed_group_ids.insert(group_record->gr_gid); | 1152 allowed_group_ids.insert(group_record->gr_gid); |
1153 } | 1153 } |
1154 | 1154 |
1155 return VerifyPathControlledByUser( | 1155 return VerifyPathControlledByUser( |
1156 kFileSystemRoot, path, kRootUid, allowed_group_ids); | 1156 kFileSystemRoot, path, kRootUid, allowed_group_ids); |
1157 } | 1157 } |
1158 #endif // defined(OS_MACOSX) | 1158 #endif // defined(OS_MACOSX) |
1159 | 1159 |
1160 } // namespace file_util | 1160 } // namespace file_util |
OLD | NEW |