From 2a952b371a824d4c853c854e27a88051d28ef295 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Mon, 14 Jul 2025 14:12:32 +0900 Subject: [PATCH] wasi_socket_ext.c: fix the number of getaddrinfo results (#4466) the case of zero results was especially broken. --- .../iwasm/libraries/lib-socket/src/wasi/wasi_socket_ext.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/core/iwasm/libraries/lib-socket/src/wasi/wasi_socket_ext.c b/core/iwasm/libraries/lib-socket/src/wasi/wasi_socket_ext.c index 5ba17edfa..d845a2fb7 100644 --- a/core/iwasm/libraries/lib-socket/src/wasi/wasi_socket_ext.c +++ b/core/iwasm/libraries/lib-socket/src/wasi/wasi_socket_ext.c @@ -541,10 +541,10 @@ getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, } } while (max_info_size > addr_info_size); + addr_info_size = max_info_size; if (addr_info_size == 0) { free(addr_info); - *res = NULL; - return __WASI_ERRNO_SUCCESS; + HANDLE_ERROR(__WASI_ERRNO_NOENT) } aibuf_res = @@ -556,10 +556,6 @@ getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, *res = &aibuf_res[0].ai; - if (addr_info_size) { - addr_info_size = max_info_size; - } - for (i = 0; i < addr_info_size; i++) { struct addrinfo *ai = &aibuf_res[i].ai; ai->ai_addr = (struct sockaddr *)&aibuf_res[i].sa;