I can see that recvfrom() in ares_process.c many times is called
with 'udp_socket' == ARES_SOCKET_BAD. I think I see why:
..check for ARES_SOCKET_BAD in outer server-loop...
but the inner loop:
do {
...
count = recvfrom(server->udp_socket ...)
...
process_answer(channel, buf, (int)count, i, 0, now);
} while (count > 0);
If 'server->udp_socket' is modified or closed in process_answer()
(via end_query()), shouldn't the inner loop check for that?
--gv
Received on 2012-06-26