Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2012 The Native Client Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
| 4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 /* | 7 /* |
| 8 * NaCl service run-time, non-platform specific system call helper routines. | 8 * NaCl service run-time, non-platform specific system call helper routines. |
| 9 */ | 9 */ |
| 10 #include <sys/types.h> | 10 #include <sys/types.h> |
| 11 #include <sys/stat.h> | 11 #include <sys/stat.h> |
| 12 | 12 |
| 13 #include <errno.h> | 13 #include <errno.h> |
| 14 #include <stdio.h> | 14 #include <stdio.h> |
| 15 #include <string.h> | |
| 15 | 16 |
| 16 #include "native_client/src/include/build_config.h" | 17 #include "native_client/src/include/build_config.h" |
| 17 | 18 |
| 18 #if NACL_WINDOWS | 19 #if NACL_WINDOWS |
| 19 #include <windows.h> | 20 #include <windows.h> |
| 20 #endif | 21 #endif |
| 21 | 22 |
| 22 #include "native_client/src/trusted/service_runtime/nacl_syscall_common.h" | 23 #include "native_client/src/trusted/service_runtime/nacl_syscall_common.h" |
| 23 | 24 |
| 24 #include "native_client/src/include/nacl_macros.h" | 25 #include "native_client/src/include/nacl_macros.h" |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 84 return 0; | 85 return 0; |
| 85 } | 86 } |
| 86 | 87 |
| 87 int NaClAclBypassChecks = 0; | 88 int NaClAclBypassChecks = 0; |
| 88 | 89 |
| 89 void NaClInsecurelyBypassAllAclChecks(void) { | 90 void NaClInsecurelyBypassAllAclChecks(void) { |
| 90 NaClLog(LOG_WARNING, "BYPASSING ALL ACL CHECKS\n"); | 91 NaClLog(LOG_WARNING, "BYPASSING ALL ACL CHECKS\n"); |
| 91 NaClAclBypassChecks = 1; | 92 NaClAclBypassChecks = 1; |
| 92 } | 93 } |
| 93 | 94 |
| 95 char *NaClRootFolder = NULL; | |
| 96 size_t NaClRootFolderLen = 0; | |
| 97 | |
| 98 void NaClMountRootFolder(char *root) { | |
| 99 /* | |
| 100 * TODO(jtolds): sanitize root, make sure it's well-formed, and does not | |
| 101 * end with a trailing slash. | |
|
jtolds
2015/06/25 23:05:05
hmm, i guess we'll need to use a path separator. n
Mark Seaborn
2015/06/25 23:55:08
I also don't know what the exact rules would need
| |
| 102 */ | |
| 103 NaClRootFolder = strdup(root); | |
| 104 NaClRootFolderLen = strlen(NaClRootFolder); | |
| 105 } | |
| 106 | |
| 107 int NaClFileAccessEnabled(void) { | |
| 108 return NaClAclBypassChecks || (NaClRootFolder != NULL); | |
| 109 } | |
| 110 | |
| 94 int NaClHighResolutionTimerEnabled(void) { | 111 int NaClHighResolutionTimerEnabled(void) { |
| 95 return NaClAclBypassChecks; | 112 return NaClAclBypassChecks; |
| 96 } | 113 } |
| 97 | 114 |
| 98 int32_t NaClSysGetpid(struct NaClAppThread *natp) { | 115 int32_t NaClSysGetpid(struct NaClAppThread *natp) { |
| 99 int32_t pid; | 116 int32_t pid; |
| 100 UNREFERENCED_PARAMETER(natp); | 117 UNREFERENCED_PARAMETER(natp); |
| 101 | 118 |
| 102 if (NaClAclBypassChecks) { | 119 if (NaClAclBypassChecks) { |
| 103 pid = GETPID(); | 120 pid = GETPID(); |
| (...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 698 #else | 715 #else |
| 699 #error Unsupported platform | 716 #error Unsupported platform |
| 700 #endif | 717 #endif |
| 701 break; | 718 break; |
| 702 } | 719 } |
| 703 case NACL_ABI__SC_PAGESIZE: { | 720 case NACL_ABI__SC_PAGESIZE: { |
| 704 result_value = 1 << 16; /* always 64k pages */ | 721 result_value = 1 << 16; /* always 64k pages */ |
| 705 break; | 722 break; |
| 706 } | 723 } |
| 707 case NACL_ABI__SC_NACL_FILE_ACCESS_ENABLED: { | 724 case NACL_ABI__SC_NACL_FILE_ACCESS_ENABLED: { |
| 708 result_value = NaClAclBypassChecks; | 725 result_value = NaClFileAccessEnabled(); |
| 709 break; | 726 break; |
| 710 } | 727 } |
| 711 case NACL_ABI__SC_NACL_LIST_MAPPINGS_ENABLED: { | 728 case NACL_ABI__SC_NACL_LIST_MAPPINGS_ENABLED: { |
| 712 result_value = nap->enable_list_mappings; | 729 result_value = nap->enable_list_mappings; |
| 713 break; | 730 break; |
| 714 } | 731 } |
| 715 case NACL_ABI__SC_NACL_PNACL_MODE: { | 732 case NACL_ABI__SC_NACL_PNACL_MODE: { |
| 716 result_value = nap->pnacl_mode; | 733 result_value = nap->pnacl_mode; |
| 717 break; | 734 break; |
| 718 } | 735 } |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1007 return NaClSysClockGetCommon(natp, clk_id, (uintptr_t) tsp, | 1024 return NaClSysClockGetCommon(natp, clk_id, (uintptr_t) tsp, |
| 1008 NaClClockGetRes, 1); | 1025 NaClClockGetRes, 1); |
| 1009 } | 1026 } |
| 1010 | 1027 |
| 1011 int32_t NaClSysClockGetTime(struct NaClAppThread *natp, | 1028 int32_t NaClSysClockGetTime(struct NaClAppThread *natp, |
| 1012 int clk_id, | 1029 int clk_id, |
| 1013 uint32_t tsp) { | 1030 uint32_t tsp) { |
| 1014 return NaClSysClockGetCommon(natp, clk_id, (uintptr_t) tsp, | 1031 return NaClSysClockGetCommon(natp, clk_id, (uintptr_t) tsp, |
| 1015 NaClClockGetTime, 0); | 1032 NaClClockGetTime, 0); |
| 1016 } | 1033 } |
| OLD | NEW |