From b663b9305ca0cde5cc2815b35e84e05fb7d38950 Mon Sep 17 00:00:00 2001 From: Ondrej Kozina Date: Fri, 18 Mar 2022 14:03:03 +0100 Subject: [PATCH] Add helper for checking data device type during encryption. In case operation is invoked with --header parameter check if data device does not already contain LUKS device --- src/utils_reencrypt.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/utils_reencrypt.c b/src/utils_reencrypt.c index ff7614fd..ba28b7a0 100644 --- a/src/utils_reencrypt.c +++ b/src/utils_reencrypt.c @@ -247,6 +247,17 @@ static bool luks2_reencrypt_eligible(struct crypt_device *cd) return true; } +static enum device_status_info check_luks_device(const char *device) +{ + enum device_status_info dev_st; + struct crypt_device *cd = NULL; + + dev_st = load_luks(&cd, CRYPT_LUKS, NULL, device); + crypt_free(cd); + + return dev_st; +} + static int action_encrypt_luks2(struct crypt_device **cd, const char *data_device, const char *device_name) { const char *type; @@ -1005,10 +1016,7 @@ static int _encrypt(int action_argc, const char **action_argv) const char *type = luksType(device_type); struct crypt_device *check_cd = NULL; - dev_st = load_luks(&check_cd, CRYPT_LUKS, NULL, uuid_or_device(action_argv[0])); - crypt_free(check_cd); - check_cd = NULL; - + dev_st = check_luks_device(uuid_or_device(action_argv[0])); if (dev_st == DEVICE_INVALID) return -EINVAL;