r12035: Fix memory leaks in the KDC.
authorAndrew Bartlett <abartlet@samba.org>
Fri, 2 Dec 2005 22:37:07 +0000 (22:37 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:47:01 +0000 (13:47 -0500)
Andrew Bartlett

source/kdc/hdb-ldb.c

index 5820ba1330a696cdf5edb61a275a17a48565bb13..8d9517e827880c3fcef6955afbdc28dd66b98a06 100644 (file)
@@ -704,6 +704,7 @@ static krb5_error_code LDB_fetch_ex(krb5_context context, HDB *db, unsigned flag
                nt_status = sam_get_results_principal((struct ldb_context *)db->hdb_db,
                                                      mem_ctx, principal_string, 
                                                      &msg, &realm_ref_msg);
+               free(principal_string);
                if (NT_STATUS_EQUAL(nt_status, NT_STATUS_NO_SUCH_USER)) {
                        return HDB_ERR_NOENTRY;
                } else if (NT_STATUS_EQUAL(nt_status, NT_STATUS_NO_MEMORY)) {
@@ -785,6 +786,7 @@ static krb5_error_code LDB_fetch_ex(krb5_context context, HDB *db, unsigned flag
                                                  mem_ctx, user_dn, &msg, krb5_attrs);
                        
                        if (ldb_ret != 1) {
+                               talloc_free(mem_ctx);
                                return HDB_ERR_NOENTRY;
                        }
                        
@@ -793,6 +795,7 @@ static krb5_error_code LDB_fetch_ex(krb5_context context, HDB *db, unsigned flag
                                               "ncName=%s", ldb_dn_linearize(mem_ctx, domain_dn));
                        
                        if (ldb_ret != 1) {
+                               talloc_free(mem_ctx);
                                return HDB_ERR_NOENTRY;
                        }