Index: components/nacl/browser/nacl_browser.cc |
diff --git a/components/nacl/browser/nacl_browser.cc b/components/nacl/browser/nacl_browser.cc |
index 45c7648c622dba5c9d3f280ae1d1a0c4c13bc81b..2982fdc1719b08fdaa882138fd43014c94ebeca7 100644 |
--- a/components/nacl/browser/nacl_browser.cc |
+++ b/components/nacl/browser/nacl_browser.cc |
@@ -113,15 +113,16 @@ const int64 kCrashesIntervalInSeconds = 120; |
namespace nacl { |
-base::File OpenNaClExecutableImpl(const base::FilePath& file_path) { |
+base::File OpenNaClReadExecImpl(const base::FilePath& file_path, |
+ bool is_executable) { |
// Get a file descriptor. On Windows, we need 'GENERIC_EXECUTE' in order to |
// memory map the executable. |
// IMPORTANT: This file descriptor must not have write access - that could |
// allow a NaCl inner sandbox escape. |
- base::File file(file_path, |
- (base::File::FLAG_OPEN | |
- base::File::FLAG_READ | |
- base::File::FLAG_EXECUTE)); // Windows only flag. |
+ uint32 flags = base::File::FLAG_OPEN | base::File::FLAG_READ; |
+ if (is_executable) |
+ flags |= base::File::FLAG_EXECUTE; // Windows only flag. |
+ base::File file(file_path, flags); |
if (!file.IsValid()) |
return file.Pass(); |