Hi,
there is patch for #3023 attached.
Reason for this patch is explained in commit message.
I am open to discussion. In my opinion we don't need to connect sysdb
pointer with domain structure because it is not used in other upgrade
functions too.
Regards
--
Petr^4 Čech
>From d0cee759147272f33427388af76ea66307e34881 Mon Sep 17 00:00:00 2001
From: Petr Cech <pc...@redhat.com>
Date: Mon, 20 Jun 2016 09:19:03 -0300
Subject: [PATCH] SYSDB: Fixing DB update
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
---
src/db/sysdb_upgrade.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/db/sysdb_upgrade.c b/src/db/sysdb_upgrade.c
index 113f24644e3e3de1d4c46d375492c2fe1e6b2f83..1c90e7aca2020be1aca50ac4092d5a8c4770775a 100644
--- a/src/db/sysdb_upgrade.c
+++ b/src/db/sysdb_upgrade.c
@@ -443,12 +443,14 @@ int sysdb_check_upgrade_02(struct sss_domain_info *domains,
goto done;
}
- users_dn = sysdb_user_base_dn(tmp_ctx, dom);
+ 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);
+ 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 +1047,8 @@ int sysdb_upgrade_10(struct sysdb_ctx *sysdb, struct sss_domain_info *domain,
return ret;
}
- basedn = sysdb_user_base_dn(tmp_ctx, domain);
+ basedn = ldb_dn_new_fmt(tmp_ctx, sysdb->ldb,
+ SYSDB_TMPL_USER_BASE, domain->name);
if (basedn == NULL) {
ret = EIO;
goto done;
--
1.7.1
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/admin/lists/sssd-devel@lists.fedorahosted.org