diff options
author | Greg Hudson <ghudson@mit.edu> | 2023-10-27 00:44:53 -0400 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2023-10-30 17:49:07 -0400 |
commit | ca80f64c786341d5871ae1de18142e62af64f7b9 (patch) | |
tree | 558b06c92166c18c07d2338a19abeed1638bd62d /src/lib/krb5/os/sendto_kdc.c | |
parent | 6c5471176f5266564fbc8a7e02f03b4b042202f8 (diff) | |
download | krb5-ca80f64c786341d5871ae1de18142e62af64f7b9.zip krb5-ca80f64c786341d5871ae1de18142e62af64f7b9.tar.gz krb5-ca80f64c786341d5871ae1de18142e62af64f7b9.tar.bz2 |
End connection on KDC_ERR_SVC_UNAVAILABLE
In sendto_kdc.c:service_fds(), if a message handler indicates that a
message should be discarded, kill the connection so we don't continue
waiting on it for more data.
ticket: 7899
Diffstat (limited to 'src/lib/krb5/os/sendto_kdc.c')
-rw-r--r-- | src/lib/krb5/os/sendto_kdc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/krb5/os/sendto_kdc.c b/src/lib/krb5/os/sendto_kdc.c index b1dc66a..0f198c3 100644 --- a/src/lib/krb5/os/sendto_kdc.c +++ b/src/lib/krb5/os/sendto_kdc.c @@ -1442,7 +1442,10 @@ service_fds(krb5_context context, struct select_state *selstate, if (msg_handler != NULL) { krb5_data reply = make_data(state->in.buf, state->in.pos); - stop = (msg_handler(context, &reply, msg_handler_data) != 0); + if (!msg_handler(context, &reply, msg_handler_data)) { + kill_conn(context, state, selstate); + stop = 0; + } } if (stop) { |