From: Günther Deschner Date: Wed, 9 Jul 2014 11:36:06 +0000 (+0200) Subject: samlogon_cache: use a talloc_stackframe inside netsamlogon_cache_store. X-Git-Tag: tdb-1.3.1~690 X-Git-Url: http://git.samba.org/samba.git/?p=sfrench%2Fsamba-autobuild%2F.git;a=commitdiff_plain;h=e0128fd07e31b3e93c38d35731d9fc15048089d7 samlogon_cache: use a talloc_stackframe inside netsamlogon_cache_store. Guenther Signed-off-by: Günther Deschner Reviewed-by: Andreas Schneider --- diff --git a/source3/libsmb/samlogon_cache.c b/source3/libsmb/samlogon_cache.c index b04cf0a2197..f7457aedc68 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; }