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-06 13:47:53 -0400
commit94ea7ae4039c553b3d7df5da384240d612782ba1 (patch)
tree8893ccd939bf1d599c085ef59121d43a11628ff3
parentd56fbf13e68b80ba220d550ab280f4e055f7fdfc (diff)
downloadkrb5-94ea7ae4039c553b3d7df5da384240d612782ba1.zip
krb5-94ea7ae4039c553b3d7df5da384240d612782ba1.tar.gz
krb5-94ea7ae4039c553b3d7df5da384240d612782ba1.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.13.5 status: resolved tags: -pullup
-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 fce478e..48e822b 100644
--- a/src/kdc/do_tgs_req.c
+++ b/src/kdc/do_tgs_req.c
@@ -952,7 +952,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;
@@ -979,7 +979,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;
}