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.