Alistair Leslie-Hughes (@alesliehughes) commented about dlls/dpwsockx/dpwsockx_main.c:
static void DPWS_MessageBodyReceiveCompleted( DPWS_IN_CONNECTION *connection );
+static int DPWS_CompareConnections( const void *key, const struct rb_entry *entry ) +{ + DPWS_OUT_CONNECTION *connection = RB_ENTRY_VALUE( entry, DPWS_OUT_CONNECTION, entry ); + SOCKADDR_IN *addr = (SOCKADDR_IN *)key; + + if ( addr->sin_port < connection->addr.sin_port ) + return -1; + if ( addr->sin_port > connection->addr.sin_port ) + return 1; + + if ( addr->sin_addr.s_addr < connection->addr.sin_addr.s_addr ) + return -1; + if ( addr->sin_addr.s_addr > connection->addr.sin_addr.s_addr ) + return 1; This looks wrong. Isn't this just "if (addr->sin_port != connection->addr.sin_port)" ? Same for s_addr.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/6681#note_85499