f224e547f4
Resolves: rhbz#1962006
105 lines
4.3 KiB
Diff
105 lines
4.3 KiB
Diff
From dbde4e692e34d3ff8233ac17a5eae5a062637e48 Mon Sep 17 00:00:00 2001
|
|
From: Justin Stephenson <jstephen@redhat.com>
|
|
Date: Wed, 19 May 2021 10:54:52 -0400
|
|
Subject: [PATCH 2/5] SECRETS: Resolve mkey path correctly
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Use the correct master key path for the secrets database,
|
|
fixing an issue on upgrade.
|
|
|
|
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
|
|
Reviewed-by: Sumit Bose <sbose@redhat.com>
|
|
---
|
|
src/tests/cmocka/test_kcm_renewals.c | 3 ++-
|
|
src/util/secrets/secrets.c | 10 ++++++----
|
|
src/util/secrets/secrets.h | 1 +
|
|
3 files changed, 9 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/src/tests/cmocka/test_kcm_renewals.c b/src/tests/cmocka/test_kcm_renewals.c
|
|
index f508bab005ff916a8f2a453670c137a56ac9ba46..53ce558be22cffb486d593bbc8c021b91e8fb2fa 100644
|
|
--- a/src/tests/cmocka/test_kcm_renewals.c
|
|
+++ b/src/tests/cmocka/test_kcm_renewals.c
|
|
@@ -37,6 +37,7 @@
|
|
#define TESTS_PATH "tp_" BASE_FILE_STEM
|
|
#define TEST_CONF_DB "test_kcm_renewals_conf.ldb"
|
|
#define TEST_DB_FULL_PATH TESTS_PATH "/secrets.ldb"
|
|
+#define TEST_MKEY_FULL_PATH TESTS_PATH "/.secrets.mkey"
|
|
|
|
errno_t kcm_renew_all_tgts(TALLOC_CTX *mem_ctx,
|
|
struct kcm_renew_tgt_ctx *renew_tgt_ctx,
|
|
@@ -199,7 +200,7 @@ static void test_kcm_renewals_tgt(void **state)
|
|
open(TEST_DB_FULL_PATH, O_CREAT|O_EXCL|O_WRONLY, 0600);
|
|
|
|
ret = sss_sec_init_with_path(test_ctx->ccdb, NULL, TEST_DB_FULL_PATH,
|
|
- &secdb->sctx);
|
|
+ TEST_MKEY_FULL_PATH, &secdb->sctx);
|
|
|
|
/* Create renew ctx */
|
|
renew_tgt_ctx = talloc_zero(test_ctx, struct kcm_renew_tgt_ctx);
|
|
diff --git a/src/util/secrets/secrets.c b/src/util/secrets/secrets.c
|
|
index 42df14aa9c6265cbd723f826ce47f35529c4be10..2801eb24263ef8116a7afc294ee91a863295f5be 100644
|
|
--- a/src/util/secrets/secrets.c
|
|
+++ b/src/util/secrets/secrets.c
|
|
@@ -634,13 +634,13 @@ static int generate_master_key(const char *filename, size_t size)
|
|
}
|
|
|
|
static errno_t lcl_read_mkey(TALLOC_CTX *mem_ctx,
|
|
- const char *dbpath,
|
|
+ const char *mkeypath,
|
|
struct sss_sec_data *master_key)
|
|
{
|
|
int mfd;
|
|
ssize_t size;
|
|
errno_t ret;
|
|
- const char *mkey = dbpath;
|
|
+ const char *mkey = mkeypath;
|
|
|
|
master_key->data = talloc_size(mem_ctx, MKEY_SIZE);
|
|
if (master_key->data == NULL) {
|
|
@@ -703,6 +703,7 @@ static int set_quotas(struct sss_sec_ctx *sec_ctx,
|
|
errno_t sss_sec_init_with_path(TALLOC_CTX *mem_ctx,
|
|
struct sss_sec_hive_config **config_list,
|
|
const char *dbpath,
|
|
+ const char *mkeypath,
|
|
struct sss_sec_ctx **_sec_ctx)
|
|
{
|
|
struct sss_sec_ctx *sec_ctx;
|
|
@@ -746,7 +747,7 @@ errno_t sss_sec_init_with_path(TALLOC_CTX *mem_ctx,
|
|
goto done;
|
|
}
|
|
|
|
- ret = lcl_read_mkey(sec_ctx, dbpath, &sec_ctx->master_key);
|
|
+ ret = lcl_read_mkey(sec_ctx, mkeypath, &sec_ctx->master_key);
|
|
if (ret != EOK) {
|
|
DEBUG(SSSDBG_OP_FAILURE, "Cannot get the master key\n");
|
|
goto done;
|
|
@@ -764,9 +765,10 @@ errno_t sss_sec_init(TALLOC_CTX *mem_ctx,
|
|
struct sss_sec_ctx **_sec_ctx)
|
|
{
|
|
const char *dbpath = SECRETS_DB_PATH"/secrets.ldb";
|
|
+ const char *mkeypath = SECRETS_DB_PATH"/.secrets.mkey";
|
|
errno_t ret;
|
|
|
|
- ret = sss_sec_init_with_path(mem_ctx, config_list, dbpath, _sec_ctx);
|
|
+ ret = sss_sec_init_with_path(mem_ctx, config_list, dbpath, mkeypath, _sec_ctx);
|
|
if (ret != EOK) {
|
|
DEBUG(SSSDBG_CRIT_FAILURE, "Failed to initialize secdb [%d]: %s\n",
|
|
ret, sss_strerror(ret));
|
|
diff --git a/src/util/secrets/secrets.h b/src/util/secrets/secrets.h
|
|
index a15b99ffec6d1810e0c0cf815ed48d118ba2a08c..958f0824b5c89d8cafc249c7ac123ed999931347 100644
|
|
--- a/src/util/secrets/secrets.h
|
|
+++ b/src/util/secrets/secrets.h
|
|
@@ -83,6 +83,7 @@ errno_t sss_sec_init(TALLOC_CTX *mem_ctx,
|
|
errno_t sss_sec_init_with_path(TALLOC_CTX *mem_ctx,
|
|
struct sss_sec_hive_config **config_list,
|
|
const char *dbpath,
|
|
+ const char *mkeypath,
|
|
struct sss_sec_ctx **_sec_ctx);
|
|
|
|
errno_t sss_sec_new_req(TALLOC_CTX *mem_ctx,
|
|
--
|
|
2.30.2
|
|
|