فهرست منبع

Fix libc-wasi/uvwasi poll/environ_get issues (#1300)

Fix libc-wasi poll_oneoff hang issue
Fix libc-uvwasi environ_get sanity check issue
Wenyong Huang 3 سال پیش
والد
کامیت
d955aa1bcc

+ 3 - 0
core/iwasm/libraries/libc-uvwasi/libc_uvwasi_wrapper.c

@@ -186,6 +186,9 @@ wasi_environ_get(wasm_exec_env_t exec_env, uint32 *environ_offsets,
     if (err)
         return err;
 
+    if (environ_count == 0)
+        return 0;
+
     total_size = sizeof(int32) * ((uint64)environ_count + 1);
     if (total_size >= UINT32_MAX
         || !validate_native_addr(environ_offsets, (uint32)total_size)

+ 1 - 1
core/iwasm/libraries/libc-wasi/sandboxed-system-primitives/src/posix.c

@@ -2595,7 +2595,7 @@ wasmtime_ssp_poll_oneoff(
         timeout = ts > INT_MAX ? -1 : (int)ts;
     }
     else {
-        timeout = -1;
+        timeout = 1000;
     }
     int ret = poll(pfds, nsubscriptions, timeout);