diff options
Diffstat (limited to 'source3/nsswitch/winbindd_ads.c')
-rw-r--r-- | source3/nsswitch/winbindd_ads.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/source3/nsswitch/winbindd_ads.c b/source3/nsswitch/winbindd_ads.c index 261c2f2237..be4ed1c667 100644 --- a/source3/nsswitch/winbindd_ads.c +++ b/source3/nsswitch/winbindd_ads.c @@ -46,9 +46,7 @@ static ADS_STRUCT *ads_cached_connection(struct winbindd_domain *domain) } /* we don't want this to affect the users ccache */ - ccache = lock_path("winbindd_ccache"); - SETENV("KRB5CCNAME", ccache, 1); - unlink(ccache); + setenv("KRB5CCNAME", "MEMORY:winbind_ccache", 1); ads = ads_init(domain->alt_name, domain->name, NULL); if (!ads) { @@ -346,10 +344,17 @@ static BOOL dn_lookup(ADS_STRUCT *ads, TALLOC_CTX *mem_ctx, ADS_STATUS rc; uint32 atype; DOM_SID sid; + char *escaped_dn = escape_ldap_string_alloc(dn); + + if (!escaped_dn) { + return False; + } asprintf(&exp, "(distinguishedName=%s)", dn); rc = ads_search_retry(ads, &res, exp, attrs); - free(exp); + SAFE_FREE(exp); + SAFE_FREE(escaped_dn); + if (!ADS_ERR_OK(rc)) { goto failed; } |