summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/smbd/share_access.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/source3/smbd/share_access.c b/source3/smbd/share_access.c
index 7087a985a9..aa3bd3965c 100644
--- a/source3/smbd/share_access.c
+++ b/source3/smbd/share_access.c
@@ -162,26 +162,21 @@ bool token_contains_name_in_list(const char *username,
const struct security_token *token,
const char **list)
{
- TALLOC_CTX *mem_ctx;
-
if (list == NULL) {
return False;
}
-
- if ( (mem_ctx = talloc_new(NULL)) == NULL ) {
- smb_panic("talloc_new failed");
- }
-
while (*list != NULL) {
- if (token_contains_name(mem_ctx, username, domain, sharename,
- token, *list)) {
- TALLOC_FREE(mem_ctx);
- return True;
+ TALLOC_CTX *frame = talloc_stackframe();
+ bool ret;
+
+ ret = token_contains_name(frame, username, domain, sharename,
+ token, *list);
+ TALLOC_FREE(frame);
+ if (ret) {
+ return true;
}
list += 1;
}
-
- TALLOC_FREE(mem_ctx);
return False;
}