]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
cryptsetup: try to load bitlocker superblock only if requested
authorLennart Poettering <lennart@poettering.net>
Tue, 9 Jun 2020 12:18:09 +0000 (14:18 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 9 Jun 2020 12:24:15 +0000 (14:24 +0200)
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

src/cryptsetup/cryptsetup.c

index c05e2d1351aefeaf3abcde8a35cfb707a49bb2fb..a8d72fcf5a85fc1009cf48de26bb735e9745eb49 100644 (file)
@@ -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));