Add a validation check that the logical size passed via the table line
does not exceed MAXIMUM_VDO_LOGICAL_BLOCKS.

Signed-off-by: Bruce Johnston <[email protected]>
---
 drivers/md/dm-vdo/dm-vdo-target.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/md/dm-vdo/dm-vdo-target.c 
b/drivers/md/dm-vdo/dm-vdo-target.c
index 1065c88a761c..cee6e4edf768 100644
--- a/drivers/md/dm-vdo/dm-vdo-target.c
+++ b/drivers/md/dm-vdo/dm-vdo-target.c
@@ -792,6 +792,12 @@ static int parse_device_config(int argc, char **argv, 
struct dm_target *ti,
        struct device_config *config = NULL;
        int result;
 
+       if (logical_bytes > (MAXIMUM_VDO_LOGICAL_BLOCKS * VDO_BLOCK_SIZE)) {
+               handle_parse_error(config, error_ptr,
+                                  "Logical size exceeds the maximum");
+               return VDO_BAD_CONFIGURATION;
+       }
+
        if ((logical_bytes % VDO_BLOCK_SIZE) != 0) {
                handle_parse_error(config, error_ptr,
                                   "Logical size must be a multiple of 4096");
-- 
2.52.0


Reply via email to