mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
s3-winbindd: Always map the LDAP error code to an NTSTATUS
We do this so that we catch LDAP_TIMELIMIT_EXCEEDED as NT_STATUS_IO_TIMEOUT, which has special handling in winbindd_cache.c Andrew Bartlett Signed-off-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
63fb1d396b
commit
b9217a8c00
@ -188,8 +188,12 @@ static NTSTATUS query_user_list(struct winbindd_domain *domain,
|
||||
}
|
||||
|
||||
rc = ads_search_retry(ads, &res, "(objectCategory=user)", attrs);
|
||||
if (!ADS_ERR_OK(rc) || !res) {
|
||||
if (!ADS_ERR_OK(rc)) {
|
||||
DEBUG(1,("query_user_list ads_search: %s\n", ads_errstr(rc)));
|
||||
status = ads_ntstatus(rc);
|
||||
} else if (!res) {
|
||||
DEBUG(1,("query_user_list ads_search returned NULL res\n"));
|
||||
|
||||
goto done;
|
||||
}
|
||||
|
||||
@ -340,9 +344,13 @@ static NTSTATUS enum_dom_groups(struct winbindd_domain *domain,
|
||||
}
|
||||
|
||||
rc = ads_search_retry(ads, &res, filter, attrs);
|
||||
if (!ADS_ERR_OK(rc) || !res) {
|
||||
if (!ADS_ERR_OK(rc)) {
|
||||
status = ads_ntstatus(rc);
|
||||
DEBUG(1,("enum_dom_groups ads_search: %s\n", ads_errstr(rc)));
|
||||
goto done;
|
||||
} else if (!res) {
|
||||
DEBUG(1,("enum_dom_groups ads_search returned NULL res\n"));
|
||||
goto done;
|
||||
}
|
||||
|
||||
count = ads_count_replies(ads, res);
|
||||
@ -550,10 +558,14 @@ static NTSTATUS query_user(struct winbindd_domain *domain,
|
||||
}
|
||||
rc = ads_search_retry(ads, &msg, ldap_exp, attrs);
|
||||
SAFE_FREE(ldap_exp);
|
||||
if (!ADS_ERR_OK(rc) || !msg) {
|
||||
if (!ADS_ERR_OK(rc)) {
|
||||
DEBUG(1,("query_user(sid=%s) ads_search: %s\n",
|
||||
sid_string_dbg(sid), ads_errstr(rc)));
|
||||
return ads_ntstatus(rc);
|
||||
} else if (!msg) {
|
||||
DEBUG(1,("query_user(sid=%s) ads_search returned NULL res\n",
|
||||
sid_string_dbg(sid)));
|
||||
return NT_STATUS_INTERNAL_ERROR;
|
||||
}
|
||||
|
||||
count = ads_count_replies(ads, msg);
|
||||
@ -662,11 +674,15 @@ static NTSTATUS lookup_usergroups_member(struct winbindd_domain *domain,
|
||||
|
||||
rc = ads_search_retry(ads, &res, ldap_exp, group_attrs);
|
||||
|
||||
if (!ADS_ERR_OK(rc) || !res) {
|
||||
if (!ADS_ERR_OK(rc)) {
|
||||
DEBUG(1,("lookup_usergroups ads_search member=%s: %s\n", user_dn, ads_errstr(rc)));
|
||||
return ads_ntstatus(rc);
|
||||
} else if (!res) {
|
||||
DEBUG(1,("lookup_usergroups ads_search returned NULL res\n"));
|
||||
return NT_STATUS_INTERNAL_ERROR;
|
||||
}
|
||||
|
||||
|
||||
count = ads_count_replies(ads, res);
|
||||
|
||||
*user_sids = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user