Index: src/trusted/desc/nacl_desc_wrapper.cc |
diff --git a/src/trusted/desc/nacl_desc_wrapper.cc b/src/trusted/desc/nacl_desc_wrapper.cc |
index ada9cb3aad152810f52670b829e4925ed1652c11..ba12aae53fde37c7c9222f43aa09bb70e41a6d57 100644 |
--- a/src/trusted/desc/nacl_desc_wrapper.cc |
+++ b/src/trusted/desc/nacl_desc_wrapper.cc |
@@ -16,6 +16,7 @@ |
#endif // defined(NACL_LINUX) |
#include "native_client/src/trusted/desc/nacl_desc_base.h" |
#include "native_client/src/trusted/desc/nacl_desc_conn_cap.h" |
+#include "native_client/src/trusted/desc/nacl_desc_file_token.h" |
#include "native_client/src/trusted/desc/nacl_desc_imc.h" |
#include "native_client/src/trusted/desc/nacl_desc_imc_shm.h" |
#include "native_client/src/trusted/desc/nacl_desc_invalid.h" |
@@ -315,6 +316,21 @@ DescWrapper* DescWrapperFactory::MakeFileDesc(int host_os_desc, int mode) { |
return MakeGenericCleanup(desc); |
} |
+DescWrapper* DescWrapperFactory::MakeFileDescMetadata(struct NaClFileInfo info, |
+ int mode) { |
+ struct NaClDesc* desc = ImportHostDescCommon(info.desc, mode); |
+ if (NULL == desc) { |
+ return NULL; |
+ } |
+ if (NaClFileTokenIsValid(&info.file_token)) { |
+ if (!NaClDescSetFileToken(desc, &info.file_token)) { |
+ NaClDescSafeUnref(desc); |
+ return NULL; |
+ } |
+ } |
+ return MakeGenericCleanup(desc); |
+} |
+ |
DescWrapper* DescWrapperFactory::MakeFileDescQuota(int host_os_desc, |
int mode, |
const uint8_t* file_id) { |