]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Fix memory leak on error in KDC decrypt_2ndtkt()
authorGreg Hudson <ghudson@mit.edu>
Thu, 25 Feb 2016 16:19:17 +0000 (11:19 -0500)
committerTom Yu <tlyu@mit.edu>
Wed, 6 Apr 2016 17:47:53 +0000 (13:47 -0400)
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

src/kdc/do_tgs_req.c

index fce478ed751f8958425c96c2973f8653357506d9..48e822b10307f0d89c3482329130eaa97ec6bb00 100644 (file)
@@ -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;
 }