summaryrefslogtreecommitdiff
path: root/source3/libsmb
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2017-10-26 16:06:27 +1300
committerGarming Sam <garming@samba.org>2017-11-20 21:41:15 +0100
commitf0e3c2daf901fa4413d3178d6c7a18fba13ccf91 (patch)
tree3af5056da1a23d68833f804394184e5a69caacca /source3/libsmb
parent3ba077f4dbda30d085823509b0aee132ff91edb6 (diff)
downloadsamba-f0e3c2daf901fa4413d3178d6c7a18fba13ccf91.tar.gz
Use talloc_stackframe() not talloc_tos() in namequery.c
The pygpo code calls these functions but there was not stackframe set up so tallos_tos() fails. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Signed-off-by: David Mulder <dmulder@suse.com> Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Diffstat (limited to 'source3/libsmb')
-rw-r--r--source3/libsmb/namequery.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c
index afc2bc06d3f..4b41546b533 100644
--- a/source3/libsmb/namequery.c
+++ b/source3/libsmb/namequery.c
@@ -2862,12 +2862,15 @@ bool resolve_name(const char *name,
char *sitename = NULL;
int count = 0;
NTSTATUS status;
+ TALLOC_CTX *frame = NULL;
if (is_ipaddress(name)) {
return interpret_string_addr(return_ss, name, AI_NUMERICHOST);
}
- sitename = sitename_fetch(talloc_tos(), lp_realm()); /* wild guess */
+ frame = talloc_stackframe();
+
+ sitename = sitename_fetch(frame, lp_realm()); /* wild guess */
status = internal_resolve_name(name, name_type, sitename,
&ss_list, &count,
@@ -2882,7 +2885,7 @@ bool resolve_name(const char *name,
(ss_list[i].ss.ss_family == AF_INET)) {
*return_ss = ss_list[i].ss;
SAFE_FREE(ss_list);
- TALLOC_FREE(sitename);
+ TALLOC_FREE(frame);
return True;
}
}
@@ -2894,14 +2897,14 @@ bool resolve_name(const char *name,
!is_broadcast_addr((struct sockaddr *)(void *)&ss_list[i].ss)) {
*return_ss = ss_list[i].ss;
SAFE_FREE(ss_list);
- TALLOC_FREE(sitename);
+ TALLOC_FREE(frame);
return True;
}
}
}
SAFE_FREE(ss_list);
- TALLOC_FREE(sitename);
+ TALLOC_FREE(frame);
return False;
}
@@ -3092,16 +3095,12 @@ static NTSTATUS get_dc_list(const char *domain,
bool done_auto_lookup = false;
int auto_count = 0;
NTSTATUS status;
- TALLOC_CTX *ctx = talloc_init("get_dc_list");
+ TALLOC_CTX *ctx = talloc_stackframe();
int auto_name_type = 0x1C;
*ip_list = NULL;
*count = 0;
- if (!ctx) {
- return NT_STATUS_NO_MEMORY;
- }
-
*ordered = False;
/* if we are restricted to solely using DNS for looking