>From 159b151096397b3a2f7e4e39365ec7ec10761eae Mon Sep 17 00:00:00 2001 From: Lukas Slebodnik Date: Fri, 13 Dec 2013 15:33:23 +0100 Subject: [PATCH 3/3] sdap_idamp: Fall back to another method if sid is wrong sss_idmap_domain_has_algorithmic_mapping can return also IDMAP_SID_INVALID, but it does not mean that idmaping is unavailable. We should fall back to another method of detection (sss_idmap_domain_by_name_has_algorithmic_mapping) and do not return false immediately. Resolves: https://fedorahosted.org/sssd/ticket/2172 --- src/providers/ldap/sdap_idmap.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/providers/ldap/sdap_idmap.c b/src/providers/ldap/sdap_idmap.c index eed0b02b8e3096d4ac817f8f26f4904b8f4578c7..aad8e34aa99fa0a0d4b28fb968f02957908a4c76 100644 --- a/src/providers/ldap/sdap_idmap.c +++ b/src/providers/ldap/sdap_idmap.c @@ -527,9 +527,15 @@ bool sdap_idmap_domain_has_algorithmic_mapping(struct sdap_idmap_ctx *ctx, err = sss_idmap_domain_has_algorithmic_mapping(ctx->map, dom_sid, &has_algorithmic_mapping); - if (err == IDMAP_SUCCESS) { + switch (err){ + case IDMAP_SUCCESS: return has_algorithmic_mapping; - } else if (err != IDMAP_SID_UNKNOWN && err != IDMAP_NO_DOMAIN) { + case IDMAP_SID_INVALID: /* FALLTHROUGH */ + case IDMAP_SID_UNKNOWN: /* FALLTHROUGH */ + case IDMAP_NO_DOMAIN: /* FALLTHROUGH */ + /* continue with idmap_domain_by_name */ + break; + default: return false; } -- 1.8.4.2