tcrypt: Fix detecting status of chained modes

The function dm_uuid_cmp cannot be used for TCRYPT, it expects
LUKS UUID, not a device name.

Fixes: #952
This commit is contained in:
Milan Broz
2025-08-08 11:15:32 +02:00
parent 57a8837879
commit 10e5ab1a87

View File

@@ -928,14 +928,16 @@ out:
static bool is_tcrypt_subdev(const char *dm_uuid, const char *base_uuid)
{
assert(base_uuid);
const char *base_uuid_name;
if (!dm_uuid)
assert(base_uuid);
base_uuid_name = strchr(base_uuid, '-');
if (!dm_uuid || !base_uuid_name)
return false;
if (!strncmp(dm_uuid, "SUBDEV-", 7))
/* dm_uuid + 6 because function requires dm_uuid to contain '-' */
return !dm_uuid_cmp(dm_uuid + 6, strchr(base_uuid, '-'));
return !strncmp(dm_uuid + 6, base_uuid_name, strlen(base_uuid_name));
/*
* FIXME: Drop after shift to dependency based deactivation (CRYPT_SUBDEV)