From 311836214245600566f881ff6253594e0999008e Mon Sep 17 00:00:00 2001 From: Petr Cech Date: Mon, 20 Jun 2016 09:19:03 -0300 Subject: SYSDB: Fixing DB update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Functions sysdb_user_base_dn() and sysdb_group_base_dn() expect that struct sss_domain_info contains pointer to struct sysdb_ctx. This is not true in case of sysdb_upgrade functions. This patch fixes the situation and revert code to the state before 12a000c8c7c07259e438fb1e992134bdd07d9a30 commit. Resolves: https://fedorahosted.org/sssd/ticket/3023 Reviewed-by: Lukáš Slebodník Reviewed-by: Sumit Bose --- src/db/sysdb_upgrade.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/db/sysdb_upgrade.c b/src/db/sysdb_upgrade.c index 1d2978cae..4ca8433f9 100644 --- a/src/db/sysdb_upgrade.c +++ b/src/db/sysdb_upgrade.c @@ -443,12 +443,23 @@ int sysdb_check_upgrade_02(struct sss_domain_info *domains, goto done; } - users_dn = sysdb_user_base_dn(tmp_ctx, dom); + /* + * dom->sysdb->ldb is not initialized, + * so ldb_dn_new_fmt() shouldn't be changed to sysdb_*_base_dn() + */ + users_dn = ldb_dn_new_fmt(tmp_ctx, sysdb->ldb, + SYSDB_TMPL_USER_BASE, dom->name); if (!users_dn) { ret = ENOMEM; goto done; } - groups_dn = sysdb_group_base_dn(tmp_ctx, dom); + + /* + * dom->sysdb->ldb is not initialized, + * so ldb_dn_new_fmt() shouldn't be changed to sysdb_*_base_dn() + */ + groups_dn = ldb_dn_new_fmt(tmp_ctx, sysdb->ldb, + SYSDB_TMPL_GROUP_BASE, dom->name); if (!groups_dn) { ret = ENOMEM; goto done; @@ -1045,7 +1056,12 @@ int sysdb_upgrade_10(struct sysdb_ctx *sysdb, struct sss_domain_info *domain, return ret; } - basedn = sysdb_user_base_dn(tmp_ctx, domain); + /* + * dom->sysdb->ldb is not initialized, + * so ldb_dn_new_fmt() shouldn't be changed to sysdb_*_base_dn() + */ + basedn = ldb_dn_new_fmt(tmp_ctx, sysdb->ldb, + SYSDB_TMPL_USER_BASE, domain->name); if (basedn == NULL) { ret = EIO; goto done; -- cgit