[PATCH] dm-verity: fix dm_is_verity_target() when dm-verity is builtin
Eric Biggers
ebiggers at kernel.org
Wed Jul 3 20:08:13 UTC 2024
From: Eric Biggers <ebiggers at google.com>
When CONFIG_DM_VERITY=y, dm_is_verity_target() returned true for any
builtin dm target, not just dm-verity. Fix this by checking for
verity_target instead of THIS_MODULE (which is NULL for builtin code).
Fixes: b6c1c5745ccc ("dm: Add verity helpers for LoadPin")
Cc: stable at vger.kernel.org
Cc: Matthias Kaehlcke <mka at chromium.org>
Cc: Kees Cook <keescook at chromium.org>
Signed-off-by: Eric Biggers <ebiggers at google.com>
---
drivers/md/dm-verity-target.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
index 0a2399d958b7..cf659c8feb29 100644
--- a/drivers/md/dm-verity-target.c
+++ b/drivers/md/dm-verity-target.c
@@ -1519,18 +1519,10 @@ static int verity_ctr(struct dm_target *ti, unsigned int argc, char **argv)
verity_dtr(ti);
return r;
}
-/*
- * Check whether a DM target is a verity target.
- */
-bool dm_is_verity_target(struct dm_target *ti)
-{
- return ti->type->module == THIS_MODULE;
-}
-
/*
* Get the verity mode (error behavior) of a verity target.
*
* Returns the verity mode of the target, or -EINVAL if 'ti' is not a verity
* target.
@@ -1580,10 +1572,18 @@ static struct target_type verity_target = {
.iterate_devices = verity_iterate_devices,
.io_hints = verity_io_hints,
};
module_dm(verity);
+/*
+ * Check whether a DM target is a verity target.
+ */
+bool dm_is_verity_target(struct dm_target *ti)
+{
+ return ti->type == &verity_target;
+}
+
MODULE_AUTHOR("Mikulas Patocka <mpatocka at redhat.com>");
MODULE_AUTHOR("Mandeep Baines <msb at chromium.org>");
MODULE_AUTHOR("Will Drewry <wad at chromium.org>");
MODULE_DESCRIPTION(DM_NAME " target for transparent disk integrity checking");
MODULE_LICENSE("GPL");
base-commit: ed28fe59c042e9b5bf3b15050aa6ee67834dc852
--
2.45.2
More information about the Linux-security-module-archive
mailing list