From: Lennart Poettering Date: Tue, 9 Jun 2020 12:21:32 +0000 (+0200) Subject: cryptsetup: pass selected mode to crypt_load() when doing LUKS X-Git-Tag: v246-rc1~174^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F16111%2Fhead;p=thirdparty%2Fsystemd.git cryptsetup: pass selected mode to crypt_load() when doing LUKS This doesn't fix anything IRL, but is a bit cleaner, since it makes sure that arg_type is properly passed to crypt_load() in all cases. We actually never set arg_type to CRYPT_LUKS2, which is why this wasn't noticed before, but theoretically this might change one day, and existing comments suggest it as possible value for arg_type, hence let's process it properly. --- diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c index a8d72fcf5a8..6d3f842dbe1 100644 --- a/src/cryptsetup/cryptsetup.c +++ b/src/cryptsetup/cryptsetup.c @@ -932,8 +932,8 @@ static int run(int argc, char *argv[]) { log_warning("Key file %s is world-readable. This is not a good idea!", key_file); } - if (!arg_type || STR_IN_SET(arg_type, ANY_LUKS, CRYPT_LUKS1)) { - r = crypt_load(cd, CRYPT_LUKS, NULL); + if (!arg_type || STR_IN_SET(arg_type, ANY_LUKS, CRYPT_LUKS1, CRYPT_LUKS2)) { + r = crypt_load(cd, !arg_type || streq(arg_type, ANY_LUKS) ? CRYPT_LUKS : arg_type, NULL); if (r < 0) return log_error_errno(r, "Failed to load LUKS superblock on device %s: %m", crypt_get_device_name(cd));