diff options
-rw-r--r-- | src/kdc/do_tgs_req.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c index 5cfe0b64b1..6bc4f15c0e 100644 --- a/src/kdc/do_tgs_req.c +++ b/src/kdc/do_tgs_req.c @@ -145,11 +145,12 @@ process_tgs_req(struct server_handle *handle, krb5_data *pkt, session_key.contents = NULL; retval = decode_krb5_tgs_req(pkt, &request); - /* Save pointer to client-requested service principal, in case of errors - * before a successful call to search_sprinc(). */ - sprinc = request->server; if (retval) return retval; + /* Save pointer to client-requested service principal, in case of + * errors before a successful call to search_sprinc(). */ + sprinc = request->server; + if (request->msg_type != KRB5_TGS_REQ) { krb5_free_kdc_req(handle->kdc_err_context, request); return KRB5_BADMSGTYPE; |