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 <libgen.h> | 10 #include <libgen.h> |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 } | 72 } |
73 #else // defined(OS_BSD) || defined(OS_MACOSX) || defined(OS_NACL) | 73 #else // defined(OS_BSD) || defined(OS_MACOSX) || defined(OS_NACL) |
74 static int CallStat(const char *path, stat_wrapper_t *sb) { | 74 static int CallStat(const char *path, stat_wrapper_t *sb) { |
75 ThreadRestrictions::AssertIOAllowed(); | 75 ThreadRestrictions::AssertIOAllowed(); |
76 return stat64(path, sb); | 76 return stat64(path, sb); |
77 } | 77 } |
78 static int CallLstat(const char *path, stat_wrapper_t *sb) { | 78 static int CallLstat(const char *path, stat_wrapper_t *sb) { |
79 ThreadRestrictions::AssertIOAllowed(); | 79 ThreadRestrictions::AssertIOAllowed(); |
80 return lstat64(path, sb); | 80 return lstat64(path, sb); |
81 } | 81 } |
82 #endif // !(defined(OS_BSD) || defined(OS_MACOSX) || defined(OS_NACL)) | 82 #endif // !(defined(OS_BSD) || defined(OS_MACOSX) || defined(OS_NACL)) |
83 | 83 |
84 // Helper for NormalizeFilePath(), defined below. | 84 // Helper for NormalizeFilePath(), defined below. |
85 bool RealPath(const FilePath& path, FilePath* real_path) { | 85 bool RealPath(const FilePath& path, FilePath* real_path) { |
86 ThreadRestrictions::AssertIOAllowed(); // For realpath(). | 86 ThreadRestrictions::AssertIOAllowed(); // For realpath(). |
87 FilePath::CharType buf[PATH_MAX]; | 87 FilePath::CharType buf[PATH_MAX]; |
88 if (!realpath(path.value().c_str(), buf)) | 88 if (!realpath(path.value().c_str(), buf)) |
89 return false; | 89 return false; |
90 | 90 |
91 *real_path = FilePath(buf); | 91 *real_path = FilePath(buf); |
92 return true; | 92 return true; |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 bool result = false; | 166 bool result = false; |
167 FilePath path; | 167 FilePath path; |
168 | 168 |
169 ScopedFD fd(CreateAndOpenFdForTemporaryFile(FilePath("/dev/shm"), &path)); | 169 ScopedFD fd(CreateAndOpenFdForTemporaryFile(FilePath("/dev/shm"), &path)); |
170 if (fd.is_valid()) { | 170 if (fd.is_valid()) { |
171 DeleteFile(path, false); | 171 DeleteFile(path, false); |
172 long sysconf_result = sysconf(_SC_PAGESIZE); | 172 long sysconf_result = sysconf(_SC_PAGESIZE); |
173 CHECK_GE(sysconf_result, 0); | 173 CHECK_GE(sysconf_result, 0); |
174 size_t pagesize = static_cast<size_t>(sysconf_result); | 174 size_t pagesize = static_cast<size_t>(sysconf_result); |
175 CHECK_GE(sizeof(pagesize), sizeof(sysconf_result)); | 175 CHECK_GE(sizeof(pagesize), sizeof(sysconf_result)); |
176 void *mapping = mmap(NULL, pagesize, PROT_READ, MAP_SHARED, fd.get(), 0); | 176 void* mapping = mmap(NULL, pagesize, PROT_READ, MAP_SHARED, fd.get(), 0); |
177 if (mapping != MAP_FAILED) { | 177 if (mapping != MAP_FAILED) { |
178 if (mprotect(mapping, pagesize, PROT_READ | PROT_EXEC) == 0) | 178 if (mprotect(mapping, pagesize, PROT_READ | PROT_EXEC) == 0) |
179 result = true; | 179 result = true; |
180 munmap(mapping, pagesize); | 180 munmap(mapping, pagesize); |
181 } | 181 } |
182 } | 182 } |
183 return result; | 183 return result; |
184 } | 184 } |
185 #endif // defined(OS_LINUX) | 185 #endif // defined(OS_LINUX) |
186 | 186 |
(...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
890 result = false; | 890 result = false; |
891 if (IGNORE_EINTR(close(outfile)) < 0) | 891 if (IGNORE_EINTR(close(outfile)) < 0) |
892 result = false; | 892 result = false; |
893 | 893 |
894 return result; | 894 return result; |
895 } | 895 } |
896 #endif // !defined(OS_MACOSX) | 896 #endif // !defined(OS_MACOSX) |
897 | 897 |
898 } // namespace internal | 898 } // namespace internal |
899 } // namespace base | 899 } // namespace base |
OLD | NEW |