2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-29 13:38:26 +00:00

named_server_servestale could leave the server in exclusive mode if a error occurs.

This commit is contained in:
Mark Andrews 2018-07-27 15:36:53 +10:00 committed by Evan Hunt
parent ebcaae4ae5
commit c8b07932e4
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,6 @@
5000. [bug] named_server_servestale() could leave the server in
exclusive mode if an error occured. [GL #441]
4999. [cleanup] Remove custom printf implementaion in lib/isc/print.c.
[GL #261]

View File

@ -14931,6 +14931,7 @@ named_server_servestale(named_server_t *server, isc_lex_t *lex,
dns_stale_answer_t staleanswersok = dns_stale_answer_conf;
isc_boolean_t wantstatus = ISC_FALSE;
isc_result_t result = ISC_R_SUCCESS;
isc_boolean_t exclusive = ISC_FALSE;
/* Skip the command name. */
ptr = next_token(lex, text);
@ -14982,6 +14983,7 @@ named_server_servestale(named_server_t *server, isc_lex_t *lex,
result = isc_task_beginexclusive(server->task);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
exclusive = ISC_TRUE;
for (view = ISC_LIST_HEAD(server->viewlist);
view != NULL;
@ -15037,12 +15039,14 @@ named_server_servestale(named_server_t *server, isc_lex_t *lex,
}
found = ISC_TRUE;
}
isc_task_endexclusive(named_g_server->task);
if (!found)
result = ISC_R_NOTFOUND;
cleanup:
if (exclusive)
isc_task_endexclusive(named_g_server->task);
if (isc_buffer_usedlength(*text) > 0)
(void) putnull(text);