You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.4 KiB
44 lines
1.4 KiB
From 4b3b6b07ad42ebab346f0fe343aab2a14cd5a9da Mon Sep 17 00:00:00 2001 |
|
From: Ondrej Kozina <okozina@redhat.com> |
|
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 |
|
|
|
|