From f16a4b30d7caef8745949c94bcc88716eb852f7b Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Wed, 13 Apr 2011 15:22:45 -0400 Subject: Run all appropriate upgrades Previously, if we were upgrading from version 0.4 or older, we would only run sysdb_upgrade_04() and exit, instead of also running sysdb_upgrade_05() --- src/db/sysdb.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/db/sysdb.c') diff --git a/src/db/sysdb.c b/src/db/sysdb.c index 493384d0..4b2b3035 100644 --- a/src/db/sysdb.c +++ b/src/db/sysdb.c @@ -1669,11 +1669,27 @@ static int sysdb_domain_init_internal(TALLOC_CTX *mem_ctx, if (strcmp(version, SYSDB_VERSION_0_4) == 0) { ret = sysdb_upgrade_04(ctx, &version); - goto done; + if (ret != EOK) { + goto done; + } } if (strcmp(version, SYSDB_VERSION_0_5) == 0) { ret = sysdb_upgrade_05(ctx, &version); + if (ret != EOK) { + goto done; + } + } + + /* The version should now match SYSDB_VERSION. + * If not, it means we didn't match any of the + * known older versions. The DB might be + * corrupt or generated by a newer version of + * SSSD. + */ + if (strcmp(version, SYSDB_VERSION) == 0) { + /* all fine, return */ + ret = EOK; goto done; } } -- cgit