diff --git a/libfreerdp/core/tcp.c b/libfreerdp/core/tcp.c index 7c8651a1f..45a500cde 100644 --- a/libfreerdp/core/tcp.c +++ b/libfreerdp/core/tcp.c @@ -895,6 +895,12 @@ static int freerdp_tcp_connect_multi(rdpContext* context, char** hostnames, addr = addrs[index]; /* set socket in non-blocking mode */ + events[index] = WSACreateEvent(); + if (!events[index]) + { + WLog_ERR(TAG, "WSACreateEvent returned %08X", WSAGetLastError()); + continue; + } if (WSAEventSelect(sockfd, events[index], FD_READ | FD_WRITE | FD_CONNECT | FD_CLOSE)) { @@ -953,6 +959,7 @@ static int freerdp_tcp_connect_multi(rdpContext* context, char** hostnames, { if (results[index]) freeaddrinfo(results[index]); + CloseHandle(events[index]); } free(addrs);