diff options
author | Greg Hudson <ghudson@mit.edu> | 2016-02-25 11:19:17 -0500 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2016-04-05 17:33:05 -0400 |
commit | ccb1b1ade68c22bb263a42349424bdf0506ac533 (patch) | |
tree | 50080a3ee9964cfc9369eb5ba651c775808ce953 | |
parent | d6fa09597eee34e15a70f3d0ef937f7122be0e56 (diff) | |
download | krb5-ccb1b1ade68c22bb263a42349424bdf0506ac533.zip krb5-ccb1b1ade68c22bb263a42349424bdf0506ac533.tar.gz krb5-ccb1b1ade68c22bb263a42349424bdf0506ac533.tar.bz2 |
Fix memory leak on error in KDC decrypt_2ndtkt()
Make sure to release the server principal entry in the cleanup handler
if it is not assigned to the output parameter. Reported by Will
Fiveash.
(cherry picked from commit a1faaa4d6a404e3103f45e639b8890c3b141dfe1)
ticket: 8362
version_fixed: 1.14.2
-rw-r--r-- | src/kdc/do_tgs_req.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c index cb2cf35..a52c960 100644 --- a/src/kdc/do_tgs_req.c +++ b/src/kdc/do_tgs_req.c @@ -975,7 +975,7 @@ decrypt_2ndtkt(kdc_realm_t *kdc_active_realm, krb5_kdc_req *req, const char **status) { krb5_error_code retval; - krb5_db_entry *server; + krb5_db_entry *server = NULL; krb5_keyblock *key; krb5_kvno kvno; krb5_ticket *stkt; @@ -1002,7 +1002,9 @@ decrypt_2ndtkt(kdc_realm_t *kdc_active_realm, krb5_kdc_req *req, goto cleanup; } *server_out = server; + server = NULL; cleanup: + krb5_db_free_principal(kdc_context, server); return retval; } |