4413. [bug] GSSAPI negotiation could fail if GSS_S_CONTINUE_NEEDED

was returned. [RT #42733]

(cherry picked from commit 63e58ad048)
This commit is contained in:
Mark Andrews
2016-07-14 15:06:28 +10:00
parent 111ec860a8
commit 55d61515ec
6 changed files with 60 additions and 22 deletions

View File

@@ -2976,13 +2976,15 @@ recvgss(isc_task_t *task, isc_event_t *event) {
tsigkey = NULL;
result = dns_tkey_gssnegotiate(tsigquery, rcvmsg, servname,
&context, &tsigkey, gssring,
use_win2k_gsstsig,
&err_message);
use_win2k_gsstsig, &err_message);
switch (result) {
case DNS_R_CONTINUE:
dns_message_destroy(&rcvmsg);
dns_request_destroy(&request);
send_gssrequest(kserver, tsigquery, &request, context);
break;
ddebug("Out of recvgss");
return;
case ISC_R_SUCCESS:
/*
@@ -3019,7 +3021,7 @@ recvgss(isc_task_t *task, isc_event_t *event) {
break;
default:
fatal("dns_tkey_negotiategss: %s %s",
fatal("dns_tkey_gssnegotiate: %s %s",
isc_result_totext(result),
err_message != NULL ? err_message : "");
}