fix krb5_mk_rep subkey leaks
authorTom Yu <tlyu@mit.edu>
Thu, 22 Sep 2005 16:44:20 +0000 (16:44 +0000)
committerTom Yu <tlyu@mit.edu>
Thu, 22 Sep 2005 16:44:20 +0000 (16:44 +0000)
* mk_req_ext.c (krb5int_generate_and_save_subkey): Check for and
free pre-existing subkeys before clobbering the pointers.  This
fixes some memory leaks.

ticket: new
target_version: 1.4.3
tags: pullup
component: krb5-libs

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17387 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/krb5/krb/ChangeLog
src/lib/krb5/krb/mk_req_ext.c

index ef63af15a81ee0b59e63cbe4442faf4af99e08d2..82a3826e0c3ad6b0660b1f364b386671953d26d8 100644 (file)
@@ -1,3 +1,9 @@
+2005-09-22  Tom Yu  <tlyu@mit.edu>
+
+       * mk_req_ext.c (krb5int_generate_and_save_subkey): Check for and
+       free pre-existing subkeys before clobbering the pointers.  This
+       fixes some memory leaks.
+
 2005-08-23  Ezra Peisach  <epeisach@mit.edu>
 
        * t_ser.c (ser_kcontext_test): Remove statement declaring an
index deeb123874821d9413feff96e67b0b6934512242..9066567baf992370641cde4de34ad997030ad0d0 100644 (file)
@@ -90,8 +90,13 @@ krb5int_generate_and_save_subkey (krb5_context context,
     d.data = (char *) &rnd_data;
     (void) krb5_c_random_add_entropy (context, KRB5_C_RANDSOURCE_TIMING, &d);
 
+    if (auth_context->send_subkey)
+       krb5_free_keyblock(context, auth_context->send_subkey);
     if ((retval = krb5_generate_subkey(context, keyblock, &auth_context->send_subkey)))
        return retval;
+
+    if (auth_context->recv_subkey)
+       krb5_free_keyblock(context, auth_context->recv_subkey);
     retval = krb5_copy_keyblock(context, auth_context->send_subkey,
                                &auth_context->recv_subkey);
     if (retval) {