wasi_socket_ext.c: fix the number of getaddrinfo results (#4466)

the case of zero results was especially broken.
This commit is contained in:
YAMAMOTO Takashi
2025-07-14 14:12:32 +09:00
committed by GitHub
parent b3158e643c
commit 2a952b371a

View File

@ -541,10 +541,10 @@ getaddrinfo(const char *node, const char *service, const struct addrinfo *hints,
} }
} while (max_info_size > addr_info_size); } while (max_info_size > addr_info_size);
addr_info_size = max_info_size;
if (addr_info_size == 0) { if (addr_info_size == 0) {
free(addr_info); free(addr_info);
*res = NULL; HANDLE_ERROR(__WASI_ERRNO_NOENT)
return __WASI_ERRNO_SUCCESS;
} }
aibuf_res = aibuf_res =
@ -556,10 +556,6 @@ getaddrinfo(const char *node, const char *service, const struct addrinfo *hints,
*res = &aibuf_res[0].ai; *res = &aibuf_res[0].ai;
if (addr_info_size) {
addr_info_size = max_info_size;
}
for (i = 0; i < addr_info_size; i++) { for (i = 0; i < addr_info_size; i++) {
struct addrinfo *ai = &aibuf_res[i].ai; struct addrinfo *ai = &aibuf_res[i].ai;
ai->ai_addr = (struct sockaddr *)&aibuf_res[i].sa; ai->ai_addr = (struct sockaddr *)&aibuf_res[i].sa;