summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2014-07-09 13:36:06 +0200
committerGünther Deschner <gd@samba.org>2014-07-15 16:00:41 +0200
commite0128fd07e31b3e93c38d35731d9fc15048089d7 (patch)
treefce7488639c413933985c50a0db63b27798c01fb
parent2a790a5aff7beceb6af875fa6bc3b3f656765f4a (diff)
downloadsamba-e0128fd07e31b3e93c38d35731d9fc15048089d7.tar.gz
samba-e0128fd07e31b3e93c38d35731d9fc15048089d7.tar.xz
samba-e0128fd07e31b3e93c38d35731d9fc15048089d7.zip
samlogon_cache: use a talloc_stackframe inside netsamlogon_cache_store.
Guenther Signed-off-by: Günther Deschner <gd@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
-rw-r--r--source3/libsmb/samlogon_cache.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/source3/libsmb/samlogon_cache.c b/source3/libsmb/samlogon_cache.c
index b04cf0a219..f7457aedc6 100644
--- a/source3/libsmb/samlogon_cache.c
+++ b/source3/libsmb/samlogon_cache.c
@@ -125,7 +125,7 @@ bool netsamlogon_cache_store(const char *username, struct netr_SamInfo3 *info3)
bool result = false;
struct dom_sid user_sid;
time_t t = time(NULL);
- TALLOC_CTX *mem_ctx;
+ TALLOC_CTX *tmp_ctx = talloc_stackframe();
DATA_BLOB blob;
enum ndr_err_code ndr_err;
struct netsamlogoncache_entry r;
@@ -149,11 +149,6 @@ bool netsamlogon_cache_store(const char *username, struct netr_SamInfo3 *info3)
/* Prepare data */
- if (!(mem_ctx = talloc( NULL, int))) {
- DEBUG(0,("netsamlogon_cache_store: talloc() failed!\n"));
- return false;
- }
-
/* only Samba fills in the username, not sure why NT doesn't */
/* so we fill it in since winbindd_getpwnam() makes use of it */
@@ -168,11 +163,11 @@ bool netsamlogon_cache_store(const char *username, struct netr_SamInfo3 *info3)
NDR_PRINT_DEBUG(netsamlogoncache_entry, &r);
}
- ndr_err = ndr_push_struct_blob(&blob, mem_ctx, &r,
+ ndr_err = ndr_push_struct_blob(&blob, tmp_ctx, &r,
(ndr_push_flags_fn_t)ndr_push_netsamlogoncache_entry);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
DEBUG(0,("netsamlogon_cache_store: failed to push entry to cache\n"));
- TALLOC_FREE(mem_ctx);
+ TALLOC_FREE(tmp_ctx);
return false;
}
@@ -183,7 +178,7 @@ bool netsamlogon_cache_store(const char *username, struct netr_SamInfo3 *info3)
result = true;
}
- TALLOC_FREE(mem_ctx);
+ TALLOC_FREE(tmp_ctx);
return result;
}