瀏覽代碼

Fix sgx platform issues (#916)

Fix ocall_poll incorrectly defined issue in which poll_fds should be defined as [in, out]
Fix is_xip_file incorrectly check issue
Wenyong Huang 4 年之前
父節點
當前提交
635084c9b2

+ 1 - 1
core/shared/platform/linux-sgx/sgx_wamr.edl

@@ -70,7 +70,7 @@ enclave {
                            [out, size=buf_len]char *buf,
                            unsigned int buf_len);
         int ocall_posix_fallocate(int fd, off_t offset, off_t len);
-        int ocall_poll([out, size=fds_len]void *fds, unsigned nfds,
+        int ocall_poll([in, out, size=fds_len]void *fds, unsigned nfds,
                        int timeout, unsigned int fds_len);
 
         int ocall_getopt(int argc,

+ 1 - 4
product-mini/platforms/linux-sgx/enclave-sample/Enclave/Enclave.cpp

@@ -229,14 +229,11 @@ handle_cmd_load_module(uint64 *args, uint32 argc)
     enclave_module->wasm_file = (uint8 *)enclave_module + sizeof(EnclaveModule);
     bh_memcpy_s(enclave_module->wasm_file, wasm_file_size, wasm_file,
                 wasm_file_size);
-    if (is_xip_file) {
-        enclave_module->is_xip_file = true;
-    }
 
     if (!(enclave_module->module =
               wasm_runtime_load(enclave_module->wasm_file, wasm_file_size,
                                 error_buf, error_buf_size))) {
-        if (!is_xip_file)
+        if (!enclave_module->is_xip_file)
             wasm_runtime_free(enclave_module);
         else
             os_munmap(enclave_module, (uint32)total_size);