Chromium Code Reviews| Index: src/trusted/service_runtime/nacl_syscall_common.c |
| diff --git a/src/trusted/service_runtime/nacl_syscall_common.c b/src/trusted/service_runtime/nacl_syscall_common.c |
| index 4a19502c52ceb198b07054532eb055a5b5a998ec..4fa07133d4e5605af5df2d13a3f19051f9f7f811 100644 |
| --- a/src/trusted/service_runtime/nacl_syscall_common.c |
| +++ b/src/trusted/service_runtime/nacl_syscall_common.c |
| @@ -12,6 +12,7 @@ |
| #include <errno.h> |
| #include <stdio.h> |
| +#include <string.h> |
| #include "native_client/src/include/build_config.h" |
| @@ -91,6 +92,22 @@ void NaClInsecurelyBypassAllAclChecks(void) { |
| NaClAclBypassChecks = 1; |
| } |
| +char *NaClRootFolder = NULL; |
| +size_t NaClRootFolderLen = 0; |
| + |
| +void NaClMountRootFolder(char *root) { |
| + /* |
| + * TODO(jtolds): sanitize root, make sure it's well-formed, and does not |
| + * 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
|
| + */ |
| + NaClRootFolder = strdup(root); |
| + NaClRootFolderLen = strlen(NaClRootFolder); |
| +} |
| + |
| +int NaClFileAccessEnabled(void) { |
| + return NaClAclBypassChecks || (NaClRootFolder != NULL); |
| +} |
| + |
| int NaClHighResolutionTimerEnabled(void) { |
| return NaClAclBypassChecks; |
| } |
| @@ -705,7 +722,7 @@ int32_t NaClSysSysconf(struct NaClAppThread *natp, |
| break; |
| } |
| case NACL_ABI__SC_NACL_FILE_ACCESS_ENABLED: { |
| - result_value = NaClAclBypassChecks; |
| + result_value = NaClFileAccessEnabled(); |
| break; |
| } |
| case NACL_ABI__SC_NACL_LIST_MAPPINGS_ENABLED: { |