From 4b3b6b07ad42ebab346f0fe343aab2a14cd5a9da Mon Sep 17 00:00:00 2001 From: Ondrej Kozina Date: Mon, 9 Jul 2018 17:18:17 +0200 Subject: [PATCH 4/6] Allow explicit LUKS2 repair. Also moves FIXME comment lower to LUKS2 code with note that currently it's safe to do crypt_repair on LUKS2 format without paying attention to LUKS2 requirements. --- lib/setup.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/setup.c b/lib/setup.c index a9b2eba..952fa0e 100644 --- a/lib/setup.c +++ b/lib/setup.c @@ -768,6 +768,14 @@ static int _crypt_load_luks(struct crypt_device *cd, const char *requested_type, return -EINVAL; } + /* + * Current LUKS2 repair just overrides blkid probes + * and perform auto-recovery if possible. This is safe + * unless future LUKS2 repair code do something more + * sophisticated. In such case we would need to check + * for LUKS2 requirements and decide if it's safe to + * perform repair. + */ r = _crypt_load_luks2(cd, cd->type != NULL, repair); } else r = -EINVAL; @@ -2023,8 +2031,7 @@ int crypt_repair(struct crypt_device *cd, if (!crypt_metadata_device(cd)) return -EINVAL; - /* FIXME LUKS2 (if so it also must respect LUKS2 requirements) */ - if (requested_type && !isLUKS1(requested_type)) + if (requested_type && !isLUKS(requested_type)) return -EINVAL; /* Load with repair */ -- 1.8.3.1