aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2016-02-25 11:19:17 -0500
committerTom Yu <tlyu@mit.edu>2016-04-05 17:33:05 -0400
commitccb1b1ade68c22bb263a42349424bdf0506ac533 (patch)
tree50080a3ee9964cfc9369eb5ba651c775808ce953
parentd6fa09597eee34e15a70f3d0ef937f7122be0e56 (diff)
downloadkrb5-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.c4
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;
}