summaryrefslogtreecommitdiff
path: root/source4/auth
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-01-24 02:19:57 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:09:09 -0500
commitf82a03b2c19e702d70ff92d3f6d1c129dcf84c86 (patch)
tree7c47ce6d89c140fb366ca76686536e9058512316 /source4/auth
parentaf4ce4805ce1504fc8869ead032eabb72fca77a0 (diff)
downloadsamba-f82a03b2c19e702d70ff92d3f6d1c129dcf84c86.tar.gz
samba-f82a03b2c19e702d70ff92d3f6d1c129dcf84c86.tar.bz2
samba-f82a03b2c19e702d70ff92d3f6d1c129dcf84c86.zip
r4955: fixed a couple of minor memory leaks in the auth_sam code
(This used to be commit 2eba223bda43a81e7aa795e58e551b0b556ddcfa)
Diffstat (limited to 'source4/auth')
-rw-r--r--source4/auth/auth_sam.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/source4/auth/auth_sam.c b/source4/auth/auth_sam.c
index 195cdeb06d..44a8b19cae 100644
--- a/source4/auth/auth_sam.c
+++ b/source4/auth/auth_sam.c
@@ -357,12 +357,14 @@ static NTSTATUS authsam_make_server_info(TALLOC_CTX *mem_ctx, void *sam_ctx,
const char *str;
int i;
uint_t rid;
+ TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
group_ret = samdb_search(sam_ctx,
- mem_ctx, NULL, &group_msgs, group_attrs,
+ tmp_ctx, NULL, &group_msgs, group_attrs,
"(&(member=%s)(sAMAccountType=*))",
msgs[0]->dn);
if (group_ret == -1) {
+ talloc_free(tmp_ctx);
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
@@ -381,6 +383,8 @@ static NTSTATUS authsam_make_server_info(TALLOC_CTX *mem_ctx, void *sam_ctx,
NT_STATUS_HAVE_NO_MEMORY(groupSIDs[i]);
}
+ talloc_free(tmp_ctx);
+
str = ldb_msg_find_string(msgs[0], "objectSid", NULL);
account_sid = dom_sid_parse_talloc(server_info, str);
NT_STATUS_HAVE_NO_MEMORY(account_sid);
@@ -481,6 +485,9 @@ NTSTATUS sam_get_server_info(TALLOC_CTX *mem_ctx, const char *account_name, cons
server_info);
NT_STATUS_NOT_OK_RETURN(nt_status);
+ talloc_free(msgs);
+ talloc_free(domain_msgs);
+
return NT_STATUS_OK;
}
@@ -519,6 +526,9 @@ static NTSTATUS authsam_check_password_internals(struct auth_method_context *ctx
server_info);
NT_STATUS_NOT_OK_RETURN(nt_status);
+ talloc_free(msgs);
+ talloc_free(domain_msgs);
+
return NT_STATUS_OK;
}