]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Fix memory leak in LDAP rename 454/head
authorGreg Hudson <ghudson@mit.edu>
Thu, 26 May 2016 15:18:24 +0000 (11:18 -0400)
committerGreg Hudson <ghudson@mit.edu>
Mon, 30 May 2016 18:16:44 +0000 (14:16 -0400)
krb5_ldap_rename_principal() must free bersecretkey.

ticket: 8065

src/plugins/kdb/ldap/libkdb_ldap/ldap_principal.c
src/plugins/kdb/ldap/libkdb_ldap/ldap_principal.h
src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c

index 00c2c884676f0438d6acce5d3bc7251b138d2106..d722dbfa60aa5eb147c3e48e91150bd1754f9067 100644 (file)
@@ -554,6 +554,7 @@ cleanup:
     free(dn);
     free(suser);
     free(tuser);
+    free_berdata(bersecretkey);
     krb5_db_free_principal(context, entry);
     ldap_mods_free(mods, 1);
     krb5_ldap_put_handle_to_pool(ldap_context, ldap_server_handle);
index a3f3c3cf6e0b41f36fc6b7b1adaed4d7860c4414..72a9f960b4a5f0b97789276765b78ce60a36b472 100644 (file)
@@ -140,6 +140,9 @@ krb5_error_code
 krb5_decode_krbsecretkey(krb5_context, krb5_db_entry *, struct berval **,
                          krb5_kvno *);
 
+void
+free_berdata(struct berval **array);
+
 krb5_error_code
 berval2tl_data(struct berval *in, krb5_tl_data **out);
 
index 7deafb1b8e004d98a396e77d5087a8de0d4d75ba..7ba53f959ce492465d5892225e3d1c6a491ee14b 100644 (file)
@@ -429,7 +429,7 @@ asn1_decode_sequence_of_keys(krb5_data *in, ldap_seqof_key_data *out)
  * Free a NULL-terminated struct berval *array[] and all its contents.
  * Does not set array to NULL after freeing it.
  */
-static void
+void
 free_berdata(struct berval **array)
 {
     int i;