Subject: [Patch] ares_process.c

[Patch] ares_process.c

From: Gisle Vanem <gvanem_at_broadpark.no>
Date: Tue, 26 Jun 2012 20:18:26 +0200

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