From: Lennart Poettering Date: Tue, 9 Jun 2020 12:18:09 +0000 (+0200) Subject: cryptsetup: try to load bitlocker superblock only if requested X-Git-Tag: v246-rc1~174^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5af39ac850844511f673ce573efa0cf84b6589a7;p=thirdparty%2Fsystemd.git cryptsetup: try to load bitlocker superblock only if requested let's do automatic discovery only for our native LUKS/LUKS2 headers, since they are Linux stuff, and let's require that BitLocker to be requested explicitly. This makes sure cryptsetup without either "luks" nor "bitlk" in the option string will work. Right now it would fail because we'd load the superblock once with luks and once with bitlk and one of them would necessarily fail. Follow-up for #15979 --- diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c index c05e2d1351a..a8d72fcf5a8 100644 --- a/src/cryptsetup/cryptsetup.c +++ b/src/cryptsetup/cryptsetup.c @@ -957,7 +957,7 @@ static int run(int argc, char *argv[]) { /* since cryptsetup 2.3.0 (Feb 2020) */ #ifdef CRYPT_BITLK - if (!arg_type || STR_IN_SET(arg_type, ANY_LUKS, CRYPT_BITLK)) { + if (streq_ptr(arg_type, CRYPT_BITLK)) { r = crypt_load(cd, CRYPT_BITLK, NULL); if (r < 0) return log_error_errno(r, "Failed to load Bitlocker superblock on device %s: %m", crypt_get_device_name(cd));