diff options
author | Sumit Bose <sbose@redhat.com> | 2015-03-17 11:08:05 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2015-03-17 15:14:44 +0100 |
commit | 8be0cf3eea892e13410c13abb030322599ca1b4f (patch) | |
tree | 19f6bc6a22bec66ded053c18e5517a299c6e49e6 /src/providers/ipa | |
parent | 95e98d7f620ee8200f960e7eeabd07d4dec1dca5 (diff) | |
download | sssd-8be0cf3eea892e13410c13abb030322599ca1b4f.tar.gz sssd-8be0cf3eea892e13410c13abb030322599ca1b4f.tar.xz sssd-8be0cf3eea892e13410c13abb030322599ca1b4f.zip |
IPA idviews: check if view name is set
When working with older FreeIPA releases the view name might not always
been set. This patch add checks to might sure it is only dereferenced
when set.
Resolves https://fedorahosted.org/sssd/ticket/2604
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/providers/ipa')
-rw-r--r-- | src/providers/ipa/ipa_s2n_exop.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/providers/ipa/ipa_s2n_exop.c b/src/providers/ipa/ipa_s2n_exop.c index d3502443c..89fe0ce22 100644 --- a/src/providers/ipa/ipa_s2n_exop.c +++ b/src/providers/ipa/ipa_s2n_exop.c @@ -1036,7 +1036,8 @@ static void ipa_s2n_get_fqlist_next(struct tevent_req *subreq) goto fail; } - if (strcmp(state->ipa_ctx->view_name, SYSDB_DEFAULT_VIEW_NAME) == 0) { + if (state->ipa_ctx->view_name == NULL || + strcmp(state->ipa_ctx->view_name, SYSDB_DEFAULT_VIEW_NAME) == 0) { ret = ipa_s2n_get_fqlist_save_step(req); if (ret == EOK) { tevent_req_done(req); @@ -1611,6 +1612,7 @@ static void ipa_s2n_get_user_done(struct tevent_req *subreq) } if (ret == ENOENT + || state->ipa_ctx->view_name == NULL || strcmp(state->ipa_ctx->view_name, SYSDB_DEFAULT_VIEW_NAME) == 0) { ret = ipa_s2n_save_objects(state->dom, state->req_input, state->attrs, @@ -2220,6 +2222,7 @@ static void ipa_s2n_get_fqlist_done(struct tevent_req *subreq) } if (state->override_attrs == NULL + && state->ipa_ctx->view_name != NULL && strcmp(state->ipa_ctx->view_name, SYSDB_DEFAULT_VIEW_NAME) != 0) { subreq = ipa_get_ad_override_send(state, state->ev, |