Bernhard Übelacker (@bernhardu) commented about dlls/iphlpapi/iphlpapi_main.c:
} }
- uni_row = NULL;
- if (!src && !(v6 && IN6_IS_ADDR_LINKLOCAL(&dst->Ipv6.sin6_addr)))
- {
static const struct in6_addr ipv6_default_addr = {{{ 0x20, 0x01, 0x0d, 0xb8 }}};
SOCKADDR_INET src_addr, dst_addr;
WORD ver = MAKEWORD (2, 2);
WSADATA data;
SOCKET s;
int len;
WSAStartup ( ver, &data );
if ((s = socket( dst->si_family, SOCK_DGRAM, IPPROTO_UDP )) == -1) goto skip_system_route;
dst_addr = *dst;
Hello @gofman, I fear asan gets triggered by this assignment.
[This is the full output with a backtrace running the iphlpapi:iphlpapi test](https://gitlab.winehq.org/bernhardu/wine/-/blob/asan-pe_2025-09-13_wine-10.1...)
If I understand it right, the size of `dst_addr` is 28 bytes, that much it tries to read from the `dst` pointer.
Unfortunately this `dst` is reserved on the stack in `GetBestInterface` as `struct sockaddr_in sa_in;` which is just 16 bytes.