2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 05:57:52 +00:00

3210. [bug] Canceling the oldest query due to recursive-client

overload could trigger an assertion failure. [RT #26463]
This commit is contained in:
Evan Hunt 2011-11-07 23:03:09 +00:00
parent 98c8a5d995
commit 83c0ef8815
2 changed files with 11 additions and 2 deletions

View File

@ -1,3 +1,6 @@
3210. [bug] Canceling the oldest query due to recursive-client
overload could trigger an assertion failure. [RT #26463]
3209. [func] Add "dnssec-lookaside 'no'". [RT #24858]
3208. [bug] 'dig -y' handle unknown tsig alorithm better.

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: client.c,v 1.282 2011/11/03 21:14:22 each Exp $ */
/* $Id: client.c,v 1.283 2011/11/07 23:03:09 each Exp $ */
#include <config.h>
@ -349,10 +349,16 @@ exit_check(ns_client_t *client) {
* I/O cancel is complete. Burn down all state
* related to the current request. Ensure that
* the client is no longer on the recursing list.
*
* We need to check whether the client is still linked,
* because it may already have been removed from the
* recursing list by ns_client_killoldestquery()
*/
if (client->state == NS_CLIENTSTATE_RECURSING) {
LOCK(&manager->reclock);
ISC_LIST_UNLINK(manager->recursing, client, rlink);
if (ISC_LINK_LINKED(client, rlink))
ISC_LIST_UNLINK(manager->recursing,
client, rlink);
UNLOCK(&manager->reclock);
}
ns_client_endrequest(client);