From bde7cbf4a7f734b1f092825f52de618cfd563e1e Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Thu, 5 Jun 2008 10:38:58 +0200 Subject: Fix a memleak caused by a crappy get_sorted_dc_list() API (This used to be commit 2ea03a1e95a30e321e390bef9408a1215711de07) --- source3/winbindd/winbindd_cm.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c index 312d30371f..ae51c268bd 100644 --- a/source3/winbindd/winbindd_cm.c +++ b/source3/winbindd/winbindd_cm.c @@ -1167,9 +1167,20 @@ static bool get_dcs(TALLOC_CTX *mem_ctx, struct winbindd_domain *domain, sitename = sitename_fetch(domain->alt_name); if (sitename) { + NTSTATUS status; /* Do the site-specific AD dns lookup first. */ - get_sorted_dc_list(domain->alt_name, sitename, &ip_list, &iplist_size, True); + status = get_sorted_dc_list(domain->alt_name, + sitename, &ip_list, + &iplist_size, True); + if (!NT_STATUS_IS_OK(status)) { + /* + * Work around a crappy about-to-be-replaced + * get_sorted_dc_list error handling :-) + */ + SAFE_FREE(ip_list); + iplist_size = 0; + } for ( i=0; i