Skip to content

Commit ea4f189

Browse files
committed
Sync from main branch
- wasi_sock_recv doesn't use src_addr - check src_addr before coverting
1 parent 55b4f73 commit ea4f189

2 files changed

Lines changed: 9 additions & 5 deletions

File tree

core/iwasm/libraries/libc-wasi/libc_wasi_wrapper.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2147,7 +2147,6 @@ wasi_sock_recv(wasm_exec_env_t exec_env, wasi_fd_t sock, iovec_app_t *ri_data,
21472147
wasi_roflags_t *ro_flags)
21482148
{
21492149
wasm_module_inst_t module_inst = get_module_inst(exec_env);
2150-
__wasi_addr_t src_addr;
21512150
wasi_errno_t error;
21522151

21532152
if (!validate_native_addr(ro_data_len, sizeof(*ro_data_len)))
@@ -2156,10 +2155,11 @@ wasi_sock_recv(wasm_exec_env_t exec_env, wasi_fd_t sock, iovec_app_t *ri_data,
21562155
if (!validate_native_addr(ro_flags, (uint64)sizeof(wasi_roflags_t)))
21572156
return __WASI_EINVAL;
21582157

2158+
// We call `recvfrom` with NULL source address as `recv` doesn't
2159+
// return the source address and this parameter is not used.
2160+
*ro_data_len = 0;
21592161
error = wasi_sock_recv_from(exec_env, sock, ri_data, ri_data_len, ri_flags,
2160-
&src_addr, ro_data_len);
2161-
*ro_flags = ri_flags;
2162-
2162+
NULL, ro_data_len);
21632163
return error;
21642164
}
21652165

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2854,7 +2854,11 @@ wasmtime_ssp_sock_recv_from(wasm_exec_env_t exec_env, struct fd_table *curfds,
28542854
return convert_errno(errno);
28552855
}
28562856

2857-
bh_sockaddr_to_wasi_addr(&sockaddr, src_addr);
2857+
// If the source address is not NULL, we need to convert the sockaddr
2858+
// back to __wasi_addr_t format.
2859+
if (src_addr != NULL) {
2860+
bh_sockaddr_to_wasi_addr(&sockaddr, src_addr);
2861+
}
28582862

28592863
*recv_len = (size_t)ret;
28602864
return __WASI_ESUCCESS;

0 commit comments

Comments
 (0)